Sorry, dass es später wurde...
Du hast dir anscheinend die Infos zur dpCollection nicht richtig durchgelesen!
Schließlich basiert sie auf dem Delphi Streaming System, welches seine Infos per
RTTI bezieht.
Die
RTTI kann aber nur auf published proerties zugreifen.
Außerdem könntest du deine TXcopyProfiles direkt von der typisierten Collection ableiten.
Das erscheint mir persönlich logischer.
Delphi-Quellcode:
{Eigenschaften}
published
property ExecTime: TDateTime read FExecTime write FExecTime;
property ProfileName: string read FProfileName write FProfileName;
property XcopyConfig: TXCConfig read FXcopyConfig write FXcopyConfig;
end;
_COLLECTION_ITEM_ = TXcopyProfile;
{$DEFINE TYPED_DP_COLLECTION_TEMPLATE}
{$INCLUDE dpCollection_tmpl.pas}
{Sammlung aller Profile}
TXcopyProfiles = class(_COLLECTION_)
private
FFileName: string;
public
constructor Create; overload;
destructor Destroy; override;
{Laden/Speichern}
procedure LoadFromFile(const Filename : TFilename); override;
procedure SaveToFile(const Filename : TFilename); override;
procedure LoadProfiles;
procedure SaveProfiles;
published
{Eigenschaften}
property FileName: string read FFileName write FFileName;
end;
Wenn du LoadFromFile überschreibst, kannst dort die Prüfung nach der Datei platzieren.
Damit du LoadFromFile & SaveToFile überschreiben kannst, musst du sie in der TJsCollection als virtual deklarieren.
Durch das überschreiben steht in der Datei auch TXcopyProfiles anstatt _COLLECTION_.
Code:
object XcopyProfiles: TXcopyProfiles
FileName = 'Miep.txt'
items = <
item
ExecTime = 38374.774360532410000000
ProfileName = 'Test Profil'
XcopyConfig.SomeProperty = 'Hallo'
end>
end