在delphi的vcl中有很多可视化组件都是使用事件模型,例如tform的oncreate事件,其原理是:在设计时指定事件函数,在运行时事件触发,则会调用在设计时指定的事件函数。
在机制上,delphi事件模型与回调是一样的。但具体形式有些区别,纯的回调函数是全局函数的形式,而delphi事件是对象方法的形式,即可以定义如下回调函数类型
type
tcallbackfunc = procedure (pdata: pointer) of object;
2 回调函数的使用说明
回调函数主要在两个场合使用,第一个是某些windows的api要求用回调函数作为其参数地址,另一种是用户在某种特定的场合定义的某个函数需要使用回调函数作为其参数地址,对于用户的定义的函数来说,一般是当调用动态连接库中的函数时使用。
对于使用一个回调函数主要有以下几个步骤:
1、 定义一个回调函数类型,跟一般的函数过程的定义并没有什么区别,但其定义必须根据需要满足回调函数的函数要求,唯一的区别在于在函数或过程的定义后面必须声明其为windows标准调用;
例:
type