Delphi 回调函数

回调函数:

type 
  FunctionType = function(num: Integer): Integer; // 定义过程类型,申明在单元文件的type下面 Tform之前
 // TForm1 = class(TForm)

function Callback(n: Integer; cacu: FunctionType): Integer; // 定义回调函数 声明在类成员声明的地方

var // 定义程序使用的公共变量
function cacuMultiple(num: Integer): Integer; //声明和过程类型兼容的过程1
function cacuAdd(num: Integer): Integer;//声明和过程类型兼容的过程2 (放在单元的var下面)

//implementation // 程序代码实现部分
//{$R *.dfm}
//实现这些过程 在implementation下面;
    function cacuAdd(num: Integer): Integer;
    begin
      Result := num + 2;
    end;


    function cacuMultiple(num: Integer): Integer;
    begin
      Result := num * 2;
    end;


    function TForm1.Callback(n: Integer; cacu: FunctionType): Integer;
    begin
      Result := cacu(n);
    end;

在事件函数的var里面 声明函数指针变量, 然后给函数指针赋值
function_cacuAdd: FunctionType;
function_cacuMul: FunctionType;

//在事件函数里面使用这个回调函数
function_cacuMul := cacuAdd;  //给函数指针赋值 (注意这里只能是非类成员才能这样赋值)
function_cacuAdd := cacuMultiple; //给函数指针赋值
Edit1.Text := IntToStr(Callback(4, function_cacuMul)); //在回调函数中使用这些指针
Edit2.Text := IntToStr(Callback(4, function_cacuAdd));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值