Autor Beitrag
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Do 20.03.03 20:52 
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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 20.03.03 21:02 
ausblenden 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Adrian Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Do 20.03.03 21:25 
Titel: Dynamische Buttons
Danke, danke, danke!!!
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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:
ausblenden 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 user profile iconTino: Code-Tags hinzugefügt.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 21.03.03 09:17 
Der Sourcecode von MSCH sollte wie folgt korrigiert werden:
ausblenden 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