Hi,
hast du es schon mal mit Kompos zur Designzeit probiert?
In der Regel reicht beim Create von Compos zur Laufzeit der Owner im Create nicht aus. Es muß explizit der Parent gesetzt werden.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
ComponentB : TComponent;
begin
ComponentB := TComponent.Create(FindComponent('ComponentA'));
ComponentB.Parent := ComponentA;
ComponentB.Name := 'ComponentB';
// ComponentB.setSubComponent(true);
end;
Dabei ist wir aber noch nicht ganz klar warum ComponentA der Owner sein soll. Ich gehe mal davon aus, dass alle compos auf Form1 plaziert sein sollen. Dann würde ich immer Form1 als Owner und Parent halten. Für deine Hirarchie halte ich es für besser einen eigenen Member (Property) anzulegen.
Das mit dem Parent ist aber nur eine Vermutung.
Die
OH sagt auch folgendes
Zitat:
WriteComponent erstellt ein Writer-Objekt und ruft dessen Methode WriteRootComponent auf, um die in Instance angegebene Komponente und deren untergeordnete Objekte in den Stream zu schreiben.
Da steht nichts von Rekursion! Die einzige Untercompo von Form1 ist ComponenteA. ComponenteB ehört nicht mehr dazu. Wenn du das gleiche mit ComponentA machst, wird sicher ComponentB zu sehen sein, aber keine weiteren Unterkomponenten.
P.S. Ich denke das mit dem Parent war nicht.
Gruß oki