如何对一个按钮的ONCLICK赋于一个过程?(0分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Tform1.Formcreate(Sender:Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure aaclick(Sender:Tobject);
var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.onclick:=aaclick
//为什么这条语句会出错?
end;
end.
如何将一个过程赋给Button1.onclick?(这个过程不放在TForm1类中.)
 
Button1.onclick:=aaclick(sender);
 
一个是方法指针,一个过程指针不能直接赋值的,
对不在一个form中需共用的事件,可以这样实现:
Tmyevent= class(TObject)
public
procedure mybuttClick(Sender: TObject);
end;

var
Form1: TForm1;
myevent:Tmyevent;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
myevent:=Tmyevent.Create;
Button1.OnClick:=myevent.mybuttClick;
end;
 
或者简单些,把aaclick的声明直接放到form的public里
还有lxn2philips的是不对的,不要(sender)
 
接受答案了.
 

Similar threads

后退
顶部