Показать сообщение отдельно
  #1  
Старый 17.11.2012, 00:17
KillDead KillDead вне форума
Прохожий
 
Регистрация: 16.11.2012
Сообщения: 3
Репутация: 10
По умолчанию теряется массив в массиве объектов

Здравствуйте, не так хорошо знаю делфи, возможно туплю, возможно нужно чтото знать:

есть код
Код:
 pItem  = class
     name : string;
     layer: string;

  end;
  lItem = class
     name : string;
     protocols : array of pItem;
  end;

  public
     addLItem : array of  lItem;
     addPItem : array of  pItem;

procedure addP(name:string);
...
 SetLength(addLItem, Length(addLItem)+1 );
 item := lItem.Create();
 SetLength(item.protocols, 0);
 addLItem[Length(addLItem)-1] := item;
 for i:= 0 to Length(addLItem)-1 do begin
    ShowMessage( '1='+IntToStr(Length(  addLItem[i].protocols)));
 end;


procedure draw( );
   for i:= 0 to Length(addLItem)-1 do begin
    ShowMessage( '2=' + IntToStr(Length(  addLItem[i].protocols)));
 end;

Всё вызываю так
Код:
 
 lp.addP('P');
 lp.draw;
В итоге получаю 2 сообщения о размере подмассива -
1=0
2=106

Почему во второй функции подмассив стал таким, ссылка потерялась?
Ответить с цитированием