我正在寻找一种方法来为多个按钮使用一个程序。这是一个测验,就像你必须按下问题1的按钮1,但复制和粘贴36个按钮的整个代码并更改36个按钮的变量对任何人来说都不是很有趣。
所以我认为这样的事情是可能的:
procedure TForm1.Button[x]Click(Sender: TObject);
begin
DoTask[x];
end;
X是变量。
这样的事情是可能的,还是有其他方法可以获得相同的结果?
答案 0 :(得分:6)
最简单的方法是:
使用Object Inspector中的Tag
属性(或者在创建它们时使用代码)对按钮进行编号,以便轻松区分它们。 (或者在单击该按钮时指定要传递给过程/函数的值。)
创建一个事件处理程序,并将其分配给您希望由相同代码处理的所有按钮。
事件收到的Sender
参数将是点击的按钮,然后您可以将其转换为TButton
。
procedure TForm1.ButtonsClick(Sender: TObject);
var
TheButton: TButton;
begin
TheButton := Sender as TButton;
DoTask(TheButton.Tag);
end;