@EConvertError: Frag's Pferd, warum es keine direkte Möglichkeit für TPersistent gibt. WriteComponent ist zwar auf Komponenten (ComponentState usw. wird angepasst) ausgelegt, aber man hätte doch trotzdem eine Lightweight-Lösung einbauen können.
Zum Class-Hack: Hört sich schlimmer an, als es ist
. WriteData, das von WriteComponent aufgerufen wird, schreibt den Namen der Klasse in den Stream (WriteStr) und ruft danach WriteProperties auf. Um auf die protected Methode zugreifen zu können, kannst du einfach von TWriter ableiten (ohne neue Member) und damit in der gesamten
Unit auf protected Member zugreifen. In diesem Falle bietet es sich aber wohl eher an, der abgeleiteten Klasse einfach eine WritePersistent-Methode zu spendieren.
@shmia: So wie ich ihn verstanden habe, will er erst einmal das
DFM-Streaming erkunden. Später wird er - wie du sagtest - sich von TFiler verabschieden und Get/SetXYZProp direkt ansteuern müssen (wobei man dafür gut TWriter.WriteProperties als Vorlage nehmen kann).