Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

StringList-Objekte wie freigeben?

  Alt 27. Jun 2006, 23:03
Ich füge mit AddObject Objekte zu einer Stringliste hinzu:

Delphi-Quellcode:
type
  TMyObj = class
    Feld1: string;
    Feld2: string;
    Feld3: string;
  end;

var
  MyStringList: TStringList;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyStringList := TStringList.Create;
end;

//[...]
var
  i: integer;
  NewMyObj: TMyObj;
begin
  for i := x to y do
  begin
    NewMyObj := TMyObj.Create;
    MyStringList.AddObject(AString, NewMyObj);
  end;
//[...]
In FormDestroy wird die StringListe wieder freigegeben. Wie müssen dabei die jeweiligen Objekte freigegeben werden?:

Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to MyStringList.Count - 1 do
    MyStringList.Objects[i].Free; //So? Oder FreeAndNil? Oder anders?
  MyStringList.Free;
end;
Oder sollte besser FreeAndNil verwendet werden? Oder etwas anderes?
  Mit Zitat antworten Zitat