Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Buttons o.ä. dynamisch erzeugen
Adrian - Do 20.03.03 20:52
Titel: Buttons o.ä. dynamisch erzeugen
Hallo,
ich will Buttons oder auch CheckBoxen usw. während der Laufzeit erstellen und frei in meinem Formular platzieren. Relativ hilfreich war mir schon die Antwort von Millo auf die Anfrage von Raps, aber ganz glücklich wurde ich noch nicht damit. Gerade das freie Platzieren macht mir noch Schwierigkeiten. Vielleicht kann mir ja einer von euch helfen, ehe mir noch mehr von den grauen Haaren ausgehen.
Servus,
Adrian
Christian S. - Do 20.03.03 21:02
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| VAR my_button : TButton;
procedure TForm1.FormCreate(Sender: TObject); begin my_button:=TButton.Create(self); with my_button do begin parent:=form1; left:=10; top:=i*50; name:='my_button'; caption:='My Button'; end; end; |
Ohne Delphi geschrieben, können also noch Fehler drin sein. Besonders wichtig ist parent:=form1.
MfG,
Peter
Adrian - Do 20.03.03 21:25
Titel: Dynamische Buttons
Danke, danke, danke!!!
MSCH - Do 20.03.03 21:47
Ups, das wird nicht gehen, da nur Button mit Name:='my_Button' exisitieren darf. *brrr* Hier unbedingt eine Laufnummer mitgeben:
Quelltext
1: 2: 3: 4:
| for I:=0 to Maxbutton do Button.Name:= Format('MyButton%d',[i]); Button.Tag:= I; ... |
Wenns denn noch ein Button ist, mußt du Ihm wenigstens auch die Methode mitgeben, die ausgeführt wird, wenn er gedrückt wird. Zwecks Auswertung würde dann die TAG Var in Frage kommen.
nur mal so als Denkansatz
Greezz
MSch
Moderiert von
Tino: Code-Tags hinzugefügt.
Christian S. - Do 20.03.03 22:48
| Zitat: |
| Ups, das wird nicht gehen, da nur Button mit Name:='my_Button' exisitieren darf. |
Das ganze war als Beispiel gedacht, wie es prinzipiell geht. Und wenn ich genau weiß, wie die Buttons heißen, die ich erstelle, ist das auch kein Problem!
Bei Deinem Beispiel würde ich sowieso ein Array of TButton vorschlagen. Wie das geht, steht in dem Tutorial "Grundlagen von Arrays und Komponentenarrays" oder so ähnlich.
Tino - Fr 21.03.03 09:17
Der Sourcecode von MSCH sollte wie folgt korrigiert werden:
Quelltext
1: 2: 3: 4: 5:
| for I:=0 to Maxbutton do begin Button.Name:= Format('MyButton%d',[i]); Button.Tag:= I; end; |
Gruß
Tino
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!