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: Lazarus でプロシージャ OnMyButClick のアドレスをパラメータとして別の関数に送信する方法は?

4

1 に答える 1

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

次のように呼び出します。

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