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

时间:2013-05-31 07:49:31

标签: freepascal lazarus

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

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

中声明OnMyButClick的位置
TForm1 = class(TForm)
...
procedure OnMyButClick(Sender: TObject); 

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

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

1 个答案:

答案 0 :(得分:1)

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

这样称呼:

CreateMyButton( ... , @OnMyButClick);