Mahlzeit!
Ich habe eine Komponente, die eine published Property hat, die von einer TList abgeleitet ist. Um die Property speichern und laden zu können, hab ich die DefineProperties - Routine der Komponente overrided
und folgendes nach dem inherited reingeschrieben:
Filer.DefineProperty('SaveProperties', FSaveProperties.Load, FSaveProperties.Save, FSaveProperties.Count > 0);
SaveProperties ist der Name der Property
. FSaveProperties ist die Liste, die die beiden Routinen zur Verfügung stellt. In den Routinen nutze ich den übergebenen Reader/Writer um die Werte zu speichern (z.B. AReader.ReadWideString)
Wenn ich nun ein Formular mit der Komponente speichere, wird der Inhalt der List richtig (
imho) abgespeichert. Wenn ich aber versuche, das Formular mit den gespeicherten Daten in der
IDE wieder zu laden (Projekt geschlossen und wieder geöffnet) kommt der Fehler
Zitat:
Fehler beim Erzeugen von Formular: Fehler beim Lesen von SettingsLinkComponent1.SaveProperties: Ungültiger Eigenschaftswert.
In der
DFM stehen 3 Werte für die Komponente: Left Top, und SaveProperties. Während des Ladens des Formulars geht Delphi 2mal in die DefineProperties (höchstwahrscheinlich für Left und Top) und dann kommt der Fehler ohne das er ein 3. Mal in die Routine gegangen ist.
Habt ihr einen Tip für mich?
Danke für eure Mühe.
//edit: ok, hat sich erledigt ... Man muss einfach bei DefineProperty einen anderen Namen wählen