Warum nicht gleich eine generische Liste? TObjectList<T> kümmert sich auch automatisch um die Freigabe der enthaltenen Objekte.
Delphi-Quellcode:
uses
Generics.Collection;
type
TDataObject = class(TPersistent)
public
MeinString, DeinString: String;
MeinInteger: Word;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
List: TObjectList<TDataObject>;
Data: TDataObject;
begin
List := TObjectList<TDataObject>.Create;
try
Data := TDataObject.Create;
Data.MeinString := 'Anfang';
Data.MeinInteger := 200;
List.Add(Data);
Data.MeinString := 'Ende';
Data.MeinInteger := 100;
List.Add(Data);
Data := List.First;
showmessage(Data.MeinString + ' ' + IntToStr
(Data.MeinInteger)); // Hier kommt "Anfang 200"
Data := List.Last;
showmessage(Data.MeinString + ' ' + IntToStr
(Data.MeinInteger)); // Hier kommt "Ende 100"
finally
List.Free;
end;
end;