Hallo marabu,
Besten Dank für die schnelle Reaktion. Das habe ich schon vermutet.
Beim Öffnen einer Form (in der
IDE) werden ja aus der
DFM-Datei die Form und alle Komponenten in diesem Moment "hochgestreamt". Theoretisch müsste es doch möglich sein sich in das Streaming einzuklinken.
So... beim Createprozess einer Komponente wird ja die Procedure DefinePropertys(Filer: TFiler) durchlaufen, hier habe ich die Möglichkeit eigene Proceduren "einzuklinken" wie ReadBinariData(Stream: TStream) und WriteBinäriDate(Stream: TStream), damit hänge ich schon mal dazwischen....
Delphi-Quellcode:
procedure Txxxx.ReadBinaryData(Stream:TStream);
Begin
...
End;
procedure Txxxx.WriteBinaryData(Stream: TStream);
Begin
....
End;
procedure Txxxx.DefineProperties(Filer: TFiler);
begin
inherited DefineProperties(Filer)
Filer.DefineBinaryProperty('NameProperty',ReadBinaryData,WriteBinaryData,fFlagxx);
end;
wäre das nicht doch ein Ansatzpunkt ?
Hallo Union
Zitat:
Du könntest versuchen, die Klassen weiter "aufzudröseln". Also eine Basisklasse (TCustomxxx) von der sich dann mehrere Zweige ableiten (TCustomEditablexxx, TCustomNotEditablexxx). Setzt natürlich voraus, dass dies dann auch klar abgrenzbar ist.
Wenn ich die Propertys in der Vorgängerklasse deklariert habe, kann ich die Eigenschaften ja selbst per protected deklarieren und damit verbergen und erst in der abgeleiteten Klasse dann (published) sichtbar machen. Die geht leider nicht, wenn es sich um eine "fremde" Klasse handelt, welche ich nicht verändern kann. Ansonsten finde ich den Vorschlag gut.
Gruß Ulli