Auf dynamische Buttons zugreifen
Hi Leute,
ich brauche eure Hilfe bitte. Und zwar, ich erzeuge dynamisch einpaar Buttons, wie kann aber in der Laufzeit raus finden, welches dieser Buttons gedruckt wurde? Das ist ein Teil aus meinem Programm:
Delphi-Quellcode:
Wenn dies aber nicht dynamisch wäre, dann würde es normal sein:
while(z<10) do
begin if (myButton[z] = nil) then begin myButton[z] := TButton.Create(self); with myButton[z] do begin Parent := myScrollBox[n]; Caption:='Button '+inttostr(z) ; Height:=22; Width:=130; Left := 10; Top :=23 end; end; inc(z); end;
Delphi-Quellcode:
Danke für jede Hilfe..
procedure TForm1.Button1Click(Sender: TObject);
begin Schomessage('Button1'); end; |
Re: Auf dynamische Buttons zugreifen
Du mußt diese Methode dem obClick zuweisen und erhälst dann die Referenz auf den button im Parameter Sender.
|
Re: Auf dynamische Buttons zugreifen
Und wo soll ich das zuweisen?
Meinst Du wohl sowas:
Delphi-Quellcode:
procedure obClick(Sender: TObject);
begin Showmessage('myButton'+inttost(z)); end; |
Re: Auf dynamische Buttons zugreifen
Ich würde folgende 2 Zeilen hinzufügen:
Delphi-Quellcode:
Und dann:
while(z<10) do
begin if (myButton[z] = nil) then begin myButton[z] := TButton.Create(self); with myButton[z] do begin Parent := myScrollBox[n]; Caption:='Button '+inttostr(z) ; Height:=22; Width:=130; Left := 10; Top :=23; Tag := z; // erste OnClick := Button1Click; // zweite end; end; inc(z); end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin case TControl(Sender).Tag of // hier kannst du anhand des Tag erkennen um welches Button es handelt und entsprechend reagieren end; end; |
Re: Auf dynamische Buttons zugreifen
Delphi-Quellcode:
[Edit: Sniper was schneller, aber es geht aucch über Namen}
while(z<10) do
begin if (myButton[z] = nil) then begin myButton[z] := TButton.Create(self); with myButton[z] do begin Parent := myScrollBox[n]; Caption:='Button '+inttostr(z) ; Name:='Button'+inttostr(z); Height:=22; Width:=130; Left := 10; Top :=23 onClick := Form1.ButtonClick; end; end; inc(z); end; ... procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(Sender as TComponent).Name); end; |
Re: Auf dynamische Buttons zugreifen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin //..... end; Da meint Ihr aber bestimmt TForm1.ButtonClick und nicht TForm1.Button1Click, oder? Dann gehts einwandfrei .. Danke euch vielmals :thumb: Beste Grüße, mfs |
Re: Auf dynamische Buttons zugreifen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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