我有表单,我在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中的参数发送给另一个函数?
答案 0 :(得分:1)
procedure CreateMyButton( ... ; ClickEvent: TNotifyEvent);
begin
... ;
Button.OnClick:=ClickEvent;
end;
这样称呼:
CreateMyButton( ... , @OnMyButClick);