有没有办法对 Pascal 中的多个按钮使用一个过程



我正在寻找一种将一个过程用于多个按钮的方法。这是针对测验的,例如您必须为问题 1 按下按钮 1,但是复制并粘贴 36 个按钮的整个代码并更改 36 个按钮的变量对任何人来说都不是很有趣。

所以我认为这样的事情是可能的:

procedure TForm1.Button[x]Click(Sender: TObject);
begin
  DoTask[x];
end;

X 是变量。

这样的事情是否可能,或者有没有其他方法可以获得相同的结果?

最简单的方法是:

  1. 使用对象检查器中的 Tag 属性(或在创建按钮时在代码中)对按钮进行编号,以便轻松区分它们。(或者,在单击该按钮时将要传递给过程/函数的值分配给过程/函数。

  2. 创建一个事件处理程序,并将其分配给要由同一代码处理的所有按钮。

  3. 事件接收的Sender参数将是单击的按钮,然后可以将其转换为TButton

    procedure TForm1.ButtonsClick(Sender: TObject);
    var
      TheButton: TButton;
    begin
      TheButton := Sender as TButton;
      DoTask(TheButton.Tag);
    end;
    

相关内容

  • 没有找到相关文章

最新更新