Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Parent Problem bei eigener Komponente (https://www.delphipraxis.net/184236-parent-problem-bei-eigener-komponente.html)

oki 18. Mär 2015 10:17

AW: Parent Problem bei eigener Komponente
 
Hallo Himitsu,

ich glaube, wir sind uns im Grunde einig, verstehen aber vielleicht die Aufgabenstellung unterschiedlich. Ich vermute mal, du meinst ausschließlich das Problem, wie man eine Komponente in einem eigenen Panel (MyPanel) zur Erstellungszeit einfügt. Dafür reicht dein Code. Ich habe den Threadersteller aber so verstanden, dass er zur Designzeit auf dem erstellten Panel (Panel1 und nicht MyPanel) weitere Komponenten platzieren will. Dazu braucht er aber Zugriff auf das eingebettete Panel1 zur Designzeit. Das ist nur möglich, wenn er das eingebettete Panel1 in die Liste Components des Formulars packt. Erst dann kann er zur Designzeit weitere Komponenten in Panel1 platzieren.
Zitat:

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.
Ich denke, an der Stelle reden wir aneinander vorbei.

Mir erschließt sich nicht wirklich, warum er nicht zur Designzeit auch Panel1 in MyPanel platziert und das unbedingt innerhalb der Kompo passieren muss. Egal, mit dem Zugriff auf Panel1 ergeben sich aber weitere Probleme wie:
- Panel1 kann somit auch zur Designzeit entfernt werden,
- Liegt MyPanel nicht auf der Form, sondern auf einem weiteren Panel reicht self.Owner.InsertComponent nicht aus. Es muss das Formular gesucht werden. Das kann man sicher über eine rekursive Funktion durch alle Owner mit Rückgabe des "Letzten" lösen.
- Panel1 kann über den OI zur Designzeit verändert werden (Position, Größe etc.). Was soll statisch bleiben? Hier müssten dann diverse Methoden überladen werden um diese Änderungen zu verhindern.

Und so gibt es bestimmt noch Dinge an die ich nicht gedacht habe, weis ja auch nicht welche konkreten Eigenschaften die Komponente haben soll. Wurde nicht genannt.

Grundsätzlich gehe ich aber davon aus, dass die grundlegende Aufgabenstellung ist, Wie kann ich in meiner Komponente ein Panel integrieten, in das ich zur Designzeit weitere Komponenten legen kann.


Gruß oki

Stegi 23. Mär 2015 04:43

AW: Parent Problem bei eigener Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

oki, du hast es richtig verstanden.
Vielleicht versuche ich noch einmal den Grund für mein Vorhaben zu schildern. Ich möchte eine Komponente erstellen die wie eine Art Groupbox fungiert nur ohne einen Rahmen und mit einen farblichen Balken oberhalb. Ähnlich den MS Word Optionen (siehe Bild).

Hierfür dachte ich, ich erstelle eine Komponente abgeleitet vom TCustomPanel welches ein weiteres Panel alTop hat und ein weiteres Panel alclint in dem alle weiteren Komponente zur Designzeit reingepackt werden können. Ich möchte dies für alle meine Kollegen so einfach und effizient wie möglich machen. Sie sollen sich nicht mehr um margins, font, farben etc. kümmern müssen sondern einfach nur ihre Komponenten mit Align = alTop hineinwerfen müssen.

Ich hoffe ich konnte etwas mehr Licht ins dunkle meiner Idee bringen. ;-)

Gruß
Stegi


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz