• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi回调函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
    //定义一个对象事件方法
   TCallbackFunc = function (i: Integer): Integer of object;

   TMyCallBackObject = class
    private
     FcallBack: TCallbackFunc;
    function SetcallBack(const Value: TCallbackFunc): Integer;

    public
      function call(param: Integer): Integer;
   end;

   TA = class
     public
        function doSomeThing(i: Integer): Integer;
   end;

{TA}
function TA.doSomeThing(i: Integer): Integer;
begin
   Result := i;
end;


var
  c: TMyCallBackObject;
  I: Integer;
  t: TA;


{ TMyCallBackObject }

function TMyCallBackObject.call(param: Integer): Integer;
begin
    Result := 0;

   if Assigned(FcallBack) then
   //调用
     Result:= FcallBack(param);

end;

function TMyCallBackObject.SetcallBack(const Value: TCallbackFunc): Integer;
begin
    Self.FcallBack := Value;
end;


begin
  c := TMyCallBackObject.Create;
  t := TA.Create;

  c.SetcallBack(t.doSomeThing);
  I := c.call(9);

  write(i);
  Readln;
  c.Free;
  t.Free;

end.

 


回调函数

 

    回调(CallBack)函数就是一种两个对象之间的通知方法。被通知者事先约定好发生某种情况时的处理函数,在该情况发生时发起通知者调用该处理函数以完成回调

  类似观察者模式, 一个对象(发布者)内部公布一个接口(TCallBackFunc), 对它感兴趣的类(TA)(订阅者)实现的具体执行方法(doSomething)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiAndroidUSB声明文件发布时间:2022-07-18
下一篇:
delphi中formatFloat代码初探(在qt下实现floatformat的函数)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap