请大家给个例子 ( 积分: 50 )

  • 主题发起人 主题发起人 leon0309
  • 开始时间 开始时间
L

leon0309

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家给个使用Tclass = procedure of object的例子。
 
请大家给个使用Tclass = procedure of object的例子。
 
unit Unit1;

interface

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

type
Tfunc=procedure of object;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure testfunc;
public
{ Public declarations }
test:Tfunc;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.testfunc;
begin
showmessage('aa');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
test:=testfunc
//将函数付给变量
test
//调用变量函数
end;

end.
 
楼上仁兄的例子有问题,没有SHOWMESSAGE出来。
 
在Delphi的帮助文件里有例子,如下:
type
TNotifyEvent = procedure(Sender: TObject) of object;
TMainForm = class(TForm)
procedure ButtonClick(Sender: TObject);
...
end;
var
MainForm: TMainForm;
OnClick: TNotifyEvent;

...

OnClick := MainForm.ButtonClick;

 
例子我看过了,有哪位能告诉我。这样做有什么好处吗?
 
of object 定义了一个方法指针,指针放过程和函数的地址。如果你想要在一个对象实例中设及一个方法,就要用到方法指针。
type

TNotifyEvent = procedure(Sender: TObject) of object;//是一个方法指针
TMainForm = class(TForm)
procedure ButtonClick(Sender: TObject);
...
end;
var
MainForm: TMainForm;
OnClick: TNotifyEvent//放一个地址
begin
OnClick := MainForm.ButtonClick;//你可以这样操作,如果没有定义成of object,就不可以。
end;
 
多人接受答案了。
 
后退
顶部