Nachdem ich mich kurzfristig einarbeiten musste und kaum brauchbare (funktionierende) Beispiele fand, habe ich mich entschlossen meine Erkenntnisse laufend hier zu veröffentlichen, falls jemand ähnliche Probleme haben sollte.
(wenn unpassend bitte löschen ...)
Voraussetzungen Delphi ab 2009 und Superobjects (mit für Delphi > 2009 entfernten IFDefs 210 ), bei der beiliegenden Version wurde da ich XE verwende, FHeapData durch FValueData ersetzt.
Teststruktur bei meinem ersten Versuch waren
Delphi-Quellcode:
Type
TPosition=Class(TObject)
Nr:Integer;
Bezeichnung:String;
Preis:Currency;
End;
TPositionenList=Class(TObjectList<TPosition>);
TRechnung=Class(TObject)
RechnungsNummer:String;
Positionen:TPositionenList;
Constructor Create;
Destructor Destroy;override;
End;
TRechnungsList=Class(TObjectList<TRechnung>);
TKunde=Class(TObject)
ID:Integer;
Name:String;
Vorname:String;
Geboren:TDatetime;
Rechnungen:TRechnungsList;
Constructor Create(aID:Integer=0;aName:String='';aVorname:String='';aGeboren:TDateTime=0);
Destructor Destroy;override;
End;
TKundenList=Class(TObjectList<TKunde>);
Der Knackpunkt die Deserialisierung der Objektlisten ....