zoukankan      html  css  js  c++  java
  • 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)

    http://www.cnblogs.com/pengshaomin/archive/2012/09/29/2708923.html

  • 相关阅读:
    CSUST 4005-你真的会!(分治思维+线段树)
    CSUST 4007-你真的会图论吗?(思维-三元环)
    CSUST 4002-你真的会字符串吗?(DP)
    Odoo下拉动作列表
    Odoo Shell
    Odoo report
    Odoo Web Service API
    Odoo启动过程
    Odoo10 变化
    Odoo10尝鲜:出勤登记
  • 原文地址:https://www.cnblogs.com/findumars/p/5321376.html
Copyright © 2011-2022 走看看