Delphi 支持三种形式的回调函数
- 全局函数这种方式几乎是所有的语言都支持的,类的静态函数也可以归为此类,它保存的只是一个函数的代码起始地址指针( Pointer )。在 Delphi 中声明一般为: 1TXXX=procedure/function (参数列表);
- 类的成员函数类的成员函数作为回调函数,与全局函数相比,需要关联具体的类的实例,所以它是由两部分组成,一个是对象的实例地址,一个是代码地址,两个指针,构成一个记录(结构体),参考 Delphi 中 TMethod 的声明: 123TMethod = recordCode, Data: Pointer;end;1TXXX=procedure/function (参数列表) of object;
- 匿名函数匿名函数 Delphi 实例上是通过接口来实现的,当你声明一个匿名函数类型时,实际上是声明了一个接口。比如我们看 Delphi 下面的匿名函数声明: 1TA=reference to procedure (x:Integer);123TA=interfaceprocedure Invoke(x:Integer);end;
转载自: