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 了,看来也很简单,不过很有用啊!


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值