首先定义函数的指针类型:比如 Type TfunctionPointer=function (myParam:integer):string;
其次定义具体函数的指针变量,比如: var tmpfunc:TfunctionPointer;
然后定义具体的函数,注意函数的参数需要和声明的函数指针参数类型一致,才能成功调用,另外这里我们仍然要考虑类成员函数的指针与函数指针之间的差异,我 们这里是函数的指针,所以不需要巴函数声明在类的内部。比如:function funcCallOne(pOne:integer):string; function funcCallTwo(pTwo:integer):string;
定义好函数后,我们来看看如何通过指针调用:tmpfunc:=funcCallOne;将函数指针指向funcCallOne,然后我们就可以象使用 funcCallOne 一样的使用tmpfunc(256); 了。让我们来看看怎么实现回调吧!声明一个回调函数,让后我们用函数的指针做为参数就可以实现了,比如我们声明回调函数:
function funcCallBack MyCallBack(cbFunc:TfunctionPointer):boolean;
然后分别实现它:
function funcCallOne(pOne:integer):string
begin
result:=inttostr(pOne*2);
end;
function funcCallBack MyCallBack(cbFunc:TfunctionPointer):boolean
var
i:integer;
begin
result:=false;
cbFunc:=funcCallOne;
i:=1000;
i:=i+500;
cbFunc(i);
result:=true;
end;
这样一来,当程序执行到 cbFunc(i); 便会回凋函数funcCallOne 了,看来也很简单,不过很有用啊!