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

  • 相关阅读:
    学习进度三
    开课博客之个人介绍
    个人作业--数组
    学习进度二
    开学第一次测试
    实现点击不同的按钮加载不同的css
    Web存储
    HTML5(常用的表单控件)
    JS(获得当前时间并且用2015-01-01格式表示)
    JS(event事件)
  • 原文地址:https://www.cnblogs.com/findumars/p/5321376.html
Copyright © 2011-2022 走看看