Du bist mit der TList vermutlich wirklich etwas zu kurz gesprungen.
Wie gesagt : TobjectList und OwnsObjects sollte auf true stehen.
@Daniel : wäre gut, wenn man beim Schreiben sehen könnte, welche Delphi-Version eingesetzt wird.
So, der ganze Krempel, den man in die TObjectList packt, wird dann beim free der Liste auch komplettt weggeräumt. Das ist minimaler Aufwand. Du kannst ja sogar auch die Records komplett in die ObjectList packen. Die schluckt fast alles.
Hier mal noch, wie das ganze ungefähr aussieht :
Delphi-Quellcode:
TArtGrundDaten = record
ID,
nr : Integer;
bez : string;
// stark verkürzt !!
end;
TDatenObjekt = class(TObject)
GrundDaten : TArtGrundDaten;
end;
DatenObjektListe : TObjectList; // nimmt spezif. Daten von TDatenObjekt auf
for i := 0 to DatenObjektListe.Count - 1 do
ArtAusgObjekt := TArtAusgObjekt (AusgObjektListe.Items[i]);
Ist das Letzte ein Typecast ?
Die Nomenklatur ist da etwas ungenau.
Nenne man das Konstukt, wie man will. Mir ists egal, weil es einwandfrei funktioniert ohne Nachteile.
Am Beispiel sieht man jedenfalls, wie man starre Records und Klassen kombinieren kann. Die Klassen, die den Record enthalten, werden an anderen Stellen jedenfalls noch
OOP-mässig erweitert.