首页  编辑  

如何将普通函数过程作为对象的方法

Tags: /超级猛料/Language.Object Pascal/面向对象和类、VCL核心/   Date Created:

如何将普通函数过程作为对象的方法

在某些时候,我们希望用一个普通的函数或者过程作为某个类、对象的方法,事件等,而直接赋值在Delphi是不可以的,用下面的方法就可以解决了

TMethod的妙用:解决动态创建的组件的事件赋值问题

program Test;

uses

Windows,

SysUtils,

ExtCtrls,

Classes,

Forms;

var

 timer1:TTimer;

 Method:TMethod;

procedure Timer1Timer(Sender: TObject);

begin

 MessageBox(0, 'aa', 'bb', 0);

end;

begin

timer1:=TTimer.Create(nil);

timer1.Interval:=3000;

Method.Data := nil;

Method.Code := @Timer1Timer;

timer1.OnTimer:= TNotifyEvent(Method);

while True do Application.ProcessMessages;

end.