Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.014 Beiträge
 
Delphi 12 Athens
 
#2

AW: Referenzierung u. Serialisierung von Subkomponenten

  Alt 16. Feb 2015, 13:43
So wird das nicht gehen - wie du ja auch selbst bemerkt hast.

1) Das SetSubComponent(true) ist notwendig, damit die Eigenschaften von SubThing gespeichert werden.
2) Eine SubComponent kann nicht referenziert werden.

Ausweg: Referenziere den SubThingOwner und füge ein public read-only property hinzu, das die SubThing-Instanz aus dem SubThingOwner holt.

Delphi-Quellcode:
  TSubThingUser = Class(TComponent)
  private
    FReferencedSubThingOwner : TSubThingOwner;
    function GetReferencedSubThing: TSubThing;
  public
    property ReferencedSubThing : TSubThing read GetReferencedSubThing;
  published
    property ReferencedSubThingOwner : TSubThingOwner read FReferencedSubThingOwner write FReferencedSubThingOwner;
  End;

function TSubThingUser.GetReferencedSubThing: TSubThing;
begin
  if FReferencedSubThingOwner <> nil then begin
    result := FReferencedSubThingOwner.SubThing;
  end
  else begin
    result := nil;
  end;

end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat