Delphi 中的函数指针

      通常在DELPHI下我们不怎么用到指针尤其是函数的指针,但有时比如我们要实现一个回调这样的功能就需要用函数指针做为参数进行传递了。

      首先定义函数的指针类型:比如 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 了,看来也很简单,不过很有用啊!

转载于:https://www.cnblogs.com/myamanda/articles/1553438.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值