Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#1

[fixed] Property via DefineProperty & TReader/TWriter ..

  Alt 23. Mai 2008, 11:23
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
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat