Auch wenn mich das nicht so stören würde, vermute ich, dass es eine Lösung gibt. (Habe es allerdings noch nicht probiert...)
Ich fange mal mit 'Color' an. In der
VCL ist Color folgendermaßen deklariert:
Zitat von
VCL:
property Color: TColor read FColor write SetColor stored IsColorStored default clWindow;
D.h. die Eigenschaft wird nur gespeichert, wenn die Funktion IsColorStored True zurückliefert.
Die sieht so aus:
Zitat von
VCL:
function TControl.IsColorStored: Boolean;
begin
Result := not ParentColor;
end;
Wenn Du in Deiner Editklasse diese Methode so überschreibst
Result := Not(ParentColor) And Not(OnlyShow);
wird Color nur noch gespeichert, falls OnlyShow auf False steht (und ParentColor natürlich auch).
Für das Cursor-Property kannst Du Dir das analog basteln, dafür gibt es allerdings noch keine IsCursorStored Funktion, die musst Du komplett neu machen und auch die stored-Direktive in die Property-Deklarartion übernehmen.
Den Quelltext der
VCl hast Du ja, ist alles in controls.pas.
Übrigens würde ich die Farbe nicht stur auf clBtnFace setzen sondern auf (Parent as TWinControl).Color, falls das Form mal eine andere Farbe hat.
Wie gesagt, da ganze ist nur eine Idee, habe es nicht probiert...
Gruß, teebee