• delphi 回调函数


    
    
    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)

     

  • 相关阅读:
    浅析uitableview
    ios9和xcode7的适配问题
    uiviewContentMode的介绍 转载
    关于常见的加密算法浅析
    程序中发起电话呼叫
    单例实现方式以及类方法和实例方法
    windows下的git的安装教程
    上传github项目
    android 使用SurfaceView绘制一个简单动画控件
    android 自定义控件属性获取bitmap和drawable的绘制
  • 原文地址:https://www.cnblogs.com/pengshaomin/p/2708923.html
Copyright © 2020-2023  润新知