Delphi-PRAXiS

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/)
-   -   Delphi Insertcompoent und parent. (https://www.delphipraxis.net/43038-insertcompoent-und-parent.html)

DerNewbie 27. Mär 2005 22:45


Insertcompoent und parent.
 
Hi habe mal zwei fragen zur VCL:

Sie wollen eine visuelle Komponente (button1) in den Besitz des Formulars
(form1) überführen. Wie lautet der hierfür notwendige Quelltext.

Meine Antwort wäre:

button1:=tbutton.Create(form1);
button1.Parent:=form1;
button1.caption:='TestButton';

· Wie können visuellen Komponenten bei der dynamischen Erstellung zur
Laufzeit in den Besitz (Owner) einer anderen Komponente hinzugefügt
werden?

siehe oben oder verstehe ich die Frage falsch? Oder ist damit InsertComponent gemeint, und wenn ja
wie würde das funktionieren?

Gruß Lars

Karlson 28. Mär 2005 04:08

Re: Insertcompoent und parent.
 
Hi,

Also die beiden Fragen sind für mich ein wenig kompliziert gestellt (ist wohl aber leider absicht...)

Ich glaube das hier der Unterschied zwischen Owner und parent verdeutlicht werden soll.

Deswegen müsste die Antwort zu 1 lediglich: button1.parent := Form1; Denn es steht nichts davon da, dass die Komponente noch nicht existiert.

Die Antwort zu 2 wäre dann: Durch den Parameter im Constructor Create. Zur erinnerung, so sieht der Create Befehl aus:

Delphi-Quellcode:
constructor create(AOwner: TComponent);

Wäre bei Frage 1 und 2 mit Besitz der Owner gemeint, dann hätten sie wohl nicht in der zweiten Frage nochmal Besitz vorgehoben.

DerNewbie 28. Mär 2005 08:35

Re: Insertcompoent und parent.
 
Hi danke für deine Antwort,

Habe jetzt mal folgendes ausprobiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.parent:=GroupBox1;

end;
Der Button befindet sich vorher auf form1 und soll sich danach in form1.groupbox1 befinden.
Er verschwindet auch aus form1 ist nur leider in groupbox1 nicht sichtbar hab ich da irgendwas vergessen?

Grml

Thx Lars

Christian Seehase 28. Mär 2005 11:19

Re: Insertcompoent und parent.
 
Moin Lars,

ich vermute einfach mal, dass Deine Groupbox zu klein ist.
Durch die Änderung des Parent ändern sich ja die Werte für die Position nicht (top, left).
Der Button wird aber nach wie vor an der gleichen Position in der Groupbox angezeigt, wie vorher im Formular.
Die Positionen gelten relativ zum Parent.

Um es einfach zu sagen:
Der Owner einer Kompo ist für deren Freigabe verantwortlich.
Wird hier nil angegeben, muss die Freigabe manuell erfolgen, ansonsten erfolgt die Freigabe, wenn der Owner freigegeben wird.

Der Parent ist für die Anzeige wichtig, da die Positionierung immer relativ zum Parent erfolgt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.

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