Hallo,
danke für eure Antworten.
Das Datenmodul wird vor der Form erzeugt und das Property auch korrekt versorgt, wenn denn eines hinterlegt ist.
Im Getter möchte ich einen Default-Wert zurückgeben, falls das Property nicht durch den User explizit gesetzt wurde:
Code:
function TRkToolBar.GetVisualStyle: TRkVisualStyle;
begin
if Assigned(FVisualStyle) then
Result := FVisualStyle
else
Result := FDefaultVisualStyle;
end;
Das Problem ist, dass bei diesem Getter der Fixup-Mechanismus den Default-Wert zurückbekommt und das im
DFM vorhandene Property aus dem Datenmoodul nicht mehr zuweist, obwohl der Wert sauber in der
DFM-Datei vorhanden ist.
Nun dachte ich, ich kann es über csFixups lösen, so dass der Fixup nil zurückbekommt und dann die Zuweisung vornimmt:
Code:
function TRkToolBar.GetVisualStyle: TRkVisualStyle;
begin
if Assigned(FVisualStyle) then
Result := FVisualStyle
else
Result := FDefaultVisualStyle;
if (csFixups in ComponentState) then
Result := nil;
end;
Aber offensichtlich wird entgegen der Dokumentation das Flag nie versorgt (komischerweise in GlobalFixupReferences entfernt: Exclude(TComponent(Instance).FComponentState, csFixups)
Wenn ich keinen Getter verwende, funktioniert die Zuweisung, allerdings kann ich dann zur Laufzeit keinen Standard zurückgeben.
Robert