Mal ein kleines Beispiel, was Markus meint (da gibt's natürlich auch mehrere Möglichkeiten, das umzusetzen):
Delphi-Quellcode:
// ...
type
TForm1 = class(TForm)
CreateButtons: TButton;
procedure MyBtnClick(Sender: TObject);
procedure CreateButtonsClick(Sender: TObject);
private
{ Private-Deklarationen }
MyButtons: array[1..5] of TButton;
// ...
procedure TForm1.CreateButtonsClick(Sender: TObject);
var
i: Integer;
begin
for i := 1 to 5 do
begin
MyButtons[i] := TButton.Create(Application.MainForm);
MyButtons[i]. Left := 200;
MyButtons[i].Top := 20 + i * 30;
MyButtons[i].Parent := Form1;
MyButtons[i].Name := 'MyBtn' + IntToStr(i);
MyButtons[i].Caption := MyButtons[i].Name;
MyButtons[i].Tag := i; // für die Fallunterscheidung im OnClick
MyButtons[i].OnClick := MyBtnClick;
MyButtons[i].Show;
end;
end;
procedure TForm1.MyBtnClick(Sender: TObject);
begin
case (Sender as TButton).Tag of
1: begin
// Code fürs Button1-Onlick
ShowMessage('Btn 1');
end;
2: begin
// Code fürs Button2-Onlick
ShowMessage('Btn 2');
end;
3: begin
// Code fürs Button3-Onlick
ShowMessage('Btn 3');
end;
4: begin
// Code fürs Button4-Onlick
ShowMessage('Btn 4');
end;
5: begin
// Code fürs Button5-Onlick
ShowMessage('Btn 5');
end;
end;
end;