0

我有表单,我在 FormCreate 过程中以编程方式创建按钮:

procedure TForm1.FormCreate(Sender: TObject);
...    
   but := TButton.Create(Form1);
   ...
   but.OnClick := @OnMyButClick;

OnMyButClick 在哪里声明

TForm1 = class(TForm)
...
procedure OnMyButClick(Sender: TObject); 

一切正常,但我想不在我的主单元中创建此按钮,而是在另一个单元中创建此按钮并将所有参数发送到那里。所有参数都发送正常(如左,上..),但我无法将 OnMyButClick 过程的地址发送到我的新过程 CreateMyButton();

Q:如何将OnMyButClick 过程的地址作为参数发送给Lazarus 中的另一个函数?

4

1 回答 1

1
procedure CreateMyButton( ... ; ClickEvent: TNotifyEvent);
begin
  ... ;
  Button.OnClick:=ClickEvent;
end;

像这样称呼它:

CreateMyButton( ... , @OnMyButClick);
于 2013-06-05T08:29:50.573 回答