3

假设我们有类似的东西

Private Sub ClickObject(ByVal sender As System.Object, ByVal e as System.Eventargs) 
Handles Object1.click, Object2.click, Object3.click

它在“句柄”之后获取事件并将它们发送到函数。

在 Delphi 中是否有类似的方法,我该怎么做?

4

2 回答 2

4

TActionList在您的表单中添加一个。TAction向它添加 a并像处理其他控件OnExecute的事件一样处理它的事件。OnClick分配Action控件的属性以引用您添加到操作列表中的操作。(这也会导致控件从关联的操作中获取它们的标题以及启用和可见的属性。它的目的是使菜单和工具栏按钮在表示相同命令时更容易具有统一的状态。)

于 2011-04-10T04:35:08.413 回答
3

是的。

您可以创建一个事件处理程序并将其分配给多个控件。

procedure TForm1.ThreeControlsClick(Sender: TObject);
begin
  if Sender = Button1 then
    HandleButton1Click
  else if Sender = ComboBox1 then
    HandleComboBox1Click
  else if Sender = Edit1 then
    HandleEdit1Click;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick := ThreeControlClick;
  ComboBox1.OnClick := ThreeControlClick;
  Edit1.OnClick := ThreeControlClick;
end;
于 2011-04-10T04:29:17.880 回答