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;