Hallo.
Ich versuche gerade eine Komponente zu schreiben, die ein TPanel als "ChildPanel" im Clientbereich besitzt in dem durch den Designer weitere Komponenten plaziert werden sollen.
Kurzum habe ich mir dazu eine neue Komponente von TCustomPanel abgeleitet, welche ein TPanel beinhaltet (protected, freigegeben über eine published property). Das ChildPanel wird im Konstruktor der Komponente erzeugt. Soweit so gut. Das Erzeugen von Komponenten zu Laufzeit und einfügen in dieses "ChildPanel" durch setzen des Parents funktioniert.
Im Designer kann ich auch zB TButtons in dieses "ChildPanel" einfügen, aber diese stehen, wie auch mein "ChildPanel", nicht im
DFM-File, sodass diese zur Laufzeit nicht erzeugt werden bzw. beim Wechsel Form->Formtextansicht->Form "gefressen" werden.
Ich sehe im Moment nicht den Unterschied, wieso ich zur Designzeit ein TPanel im TPanel platzieren kann und darin bel. Komponenten aber es bei mir nicht funktioniert. Muss ich dem Designer irgendwie sagen, dass er dieses interne ChildPanel mit seinen ChildKomponenten "serialisiert"?
Hat jemand einen Tip?
Michael
[Edit:]
Habe es im Moment über einen WorkAround gelöst (wahrscheinlich ähnlich wie es die TPageControl beim Erzeugen der TabSheets macht) und erzeuge im Konstuktor der Komponente das Panel welches ich über AOwner/GetParentForm/Form.Designer.Modified ins zugehörigen Formular bringe.