Tbutton(t).Click
Wobei T eine simple Variable vom Typ String ist.
Also man kann das irgendwie schon machen, aber man sollte da aufpassen, dass das einem nicht um die Ohren fliegt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hallo Welt!');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ButtonName: String;
begin
ButtonName := 'Button1';
if FindComponent(ButtonName).ClassType = TButton then
begin
TButton(FindComponent(ButtonName)).Perform(WM_LBUTTONDOWN, 0, 0);
TButton(FindComponent(ButtonName)).Perform(WM_LBUTTONUP, 0, 0);
end;
end;
Wenn man das Ganze auch noch schön in eine Prozedur auslagert, dann kann man wuderbar auf jeden Button über Namen zugreifen:
Delphi-Quellcode:
procedure StringButtonClick(Form: TForm; ButtonName: String);
begin
with Form do
if FindComponent(ButtonName).ClassType = TButton then
begin
TButton(FindComponent(ButtonName)).Perform(WM_LBUTTONDOWN, 0, 0);
TButton(FindComponent(ButtonName)).Perform(WM_LBUTTONUP, 0, 0);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
StringButtonClick(Form1, 'Button1');
end;