delphi关于自定义事件的使用?解决方案
delphi关于自定义事件的使用??
myevent = procedure(i:integer) of object;
myevent = procedure(i:integer);
这两种定义方法,区别的在哪,具体怎么使用啊,能否给个举一个例子??
------解决方案--------------------
准确的说这不叫一个“事件”,这是叫一个事件的处理函数,实际就是一个用作回调的函数指针。
------解决方案--------------------
myevent = procedure(i:integer) of object; // 下面拆开来讲
myevent = // 表示要声明一种类型,类型名叫 myevent
procedure(i:integer) // 接上面,这个名为 myevent的类型是一个函数指针类型
of object // 顾名思义,表示这个函数必须是一个对象(类)的函数
myevent = procedure(i:integer) of object;
myevent = procedure(i:integer);
这两种定义方法,区别的在哪,具体怎么使用啊,能否给个举一个例子??
------解决方案--------------------
准确的说这不叫一个“事件”,这是叫一个事件的处理函数,实际就是一个用作回调的函数指针。
myevent = procedure(i:integer) of object; // 表示这个函数必须是一个类的成员函数
type
Myclass = class
procedure EventProc(i:integer);
end;
procedure Myclass.EventProc(i:integer);
begin
// 这个函数与此匹配
end;
//例如一个Tbutton类的OnClick事件的事件处理函数
myevent = procedure(i:integer); // 则不是任何一个类的成员函数
procedure EventProc(i:integer);
begin
// 与 procedure(i:integer) 匹配
end;
//例如像API SetTimer中需要的一个回调函数指针
------解决方案--------------------
myevent = procedure(i:integer) of object; // 下面拆开来讲
myevent = // 表示要声明一种类型,类型名叫 myevent
procedure(i:integer) // 接上面,这个名为 myevent的类型是一个函数指针类型
of object // 顾名思义,表示这个函数必须是一个对象(类)的函数