![]() |
Parent Problem bei eigener Komponente
Hallo,
ich habe ein Problem und konnte im www bislang noch keine Lösung finden. Vielleicht fehlen mir auch nur die passenden Suchbegriffe. Vieleicht finde ich hier eine Lösung für mein Problem. Ich habe mir eine Eigenen Komponente erzeugt. Um das Beispiel verständlich zu halten basiert meine Komponente auf ein TPanel.
Code:
Ich registriere die Kompononete entsprechend und kann diese dann auch aus meiner Toolpalete in meinem Dialog ziehen.
TMeineKompo = class(TPanel)
public Pan1: TPanel; Pan2: TPanel; constructor Create(aOwner: TComponent); override; end; Jetzt möchte ich zur Designzeit in dem Dialog weitere Komponenten (z.B. Panel) in das Panel (Pan2) meiner Komponente platzieren. Ich kann zwar ein Panel unter der Komponente hängen, jedoch ist der Parent nicht mein gewünschtes Panel Pan2 sonder die Komponente selbst. Wie bekomme ich das hin, dass ich weitere Komponenten zur Designzeit in delphi in das Panel Pan2 meiner Komponente packen kann? Ich hoffe ich konnte mein Problem einigermaßen nachvollziehend erklären. ;-) Viele Grüße Stegi |
AW: Parent Problem bei eigener Komponente
Moin und willkommen in der Delphi-PRAXiS. :-)
Nach Deiner Beschreibung fehlt Dir ein Wert im Set "ControlStyle". Dort kannst - musst - Du definieren, dass Du gern als Basis für andere Controls dienen möchtest: ![]() In etwa wie folgt:
Delphi-Quellcode:
constructor TMeineKompo.Create(AOwner: TComponent);
begin inherited Create(AOwner); ControlStyle := ControlStyle + [csAcceptsControls]; //... end; |
AW: Parent Problem bei eigener Komponente
Ohne es ausprobiert zu haben- Müsste er das nicht durch das Erben von
Delphi-Quellcode:
bereits erledigt haben? Sein Problem ist ja nicht dass man auf dem Designer keine Controls hineinwerfen könne, sondern dass die hineingesteckten nicht direkt im
TPanel
Delphi-Quellcode:
-Nachfahren, sondern in einem da drin bereits enthaltenen Container landen sollen.
TPanel
Spontan hätte ich gesagt, dazu müsste man einfach nur das von
Delphi-Quellcode:
geerbte
TWinControl
Delphi-Quellcode:
überschreiben. Aber das ist nicht virtuell.
procedure InsertControl(AControl: TControl);
Und somit hätte ich spontan auch keine Idee. |
AW: Parent Problem bei eigener Komponente
Zitat:
Aber ob der FormDesigner dann noch anbietet diese Komponenten zu bearbeiten, weiß ich auch nicht. |
AW: Parent Problem bei eigener Komponente
im Constructor
Delphi-Quellcode:
würde das mit den Panels über nen Setter machen
Pan1 := TMein(bla).Create(Self);
Pan1.Parent := Self; . . . FPan1 usw |
AW: Parent Problem bei eigener Komponente
Es geht um die Designzeit, da bringt es ja nichts, im Konstruktor den Parent setzen zu wollen.
|
AW: Parent Problem bei eigener Komponente
Zitat:
|
AW: Parent Problem bei eigener Komponente
Ja nee is klar.
|
AW: Parent Problem bei eigener Komponente
Zitat:
|
AW: Parent Problem bei eigener Komponente
Zitat:
![]()
Delphi-Quellcode:
) die Werte für
TComponentState
Delphi-Quellcode:
und
csDesigning
Delphi-Quellcode:
bedeuten.
csDesignInstance
Wenn also eine Komponente zur Designzeit niemals auch nur irgendwas da zum Leben erweckt, wozu sind denn diese komischen Dingsbums-Dinger da? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz