self.Owner.InsertComponents(Panel1);
ist aber genau der Punkt, der zur Designzeit Zugriff auf das Panel1 liefert. Ohne gehts nicht. Bitte achte drauf, InsertComponent rufe ich nicht für MyPanel auf, sondern für dessen Owner!
Das ist doch
Delphi-Quellcode:
Panel1 := TPanel.Create(self);
Panel1.Parent := self;
gleich dem
Delphi-Quellcode:
Panel1 := TPanel.Create(nil);
Panel1.Owner := Self;
Panel1.Parent := Self;
mit dem kleinen Problem, dass Owner eine nur-lese-Eigenschaft ist und so nicht gehen sollte. Führt aber alleine nicht dazu, dass man weitere Controls in Panel1 zur Designzeit legen kann.
CreateWnd hatte ich immer so verstanden, dass das nach dem Create aufgerufen wird wenn ein
Handle verfügbar ist. Das ist beim Create noch nicht da. Das das bei einer vorhandenen Componente zur Lebenszeit wiederholt aufgerufen wird ist mir noch nie vorgekommen. Wenn ich in einer eigenen Komponente das
Handle benötige habe ich den Code immer da platziert, auch für weitere Objekte. Hatte nie Probleme.
Muss ich noch mal nachlesen.
Gruß oki