Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TList.Free


Автор: edge 22.10.2004, 15:04
Код

procedure TForm1.FormButton1Click(Sender: TObject);
type
 PMyList = ^AList;
 AList = record
   I: Integer;
   C: Char;
 end;

var
 MyList: TList;
 ARecord: PMyList;
 B: Byte;
 Y: Word;

begin
 MyList := TList.Create;
 try
   New(ARecord);
   ARecord^.I := 100;
   ARecord^.C := 'Z';
   MyList.Add(ARecord);
   New(ARecord);
   ARecord^.I := 200;
   ARecord^.C := 'X';
   MyList.Add(ARecord);

  for B := 0 to (MyList.Count - 1) do
  begin
    ARecord := MyList.Items[B];
    Dispose(ARecord);
  end;

 finally
   MyList.Free;
 end;
end;


Пример взят из хелпа. Обязательно ли писать
for B := 0 to (MyList.Count - 1) do
begin
ARecord := MyList.Items[B];
Dispose(ARecord);
end;
ведь Free освобождает память и уничтожает указатели. Если обязательно, то можно вместо цикла написать MyList.Clear?


Автор: Girder 22.10.2004, 15:27
TList хранит указатели на данные... а не сами данные ;-)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)