zoukankan      html  css  js  c++  java
  • Delphi 回调函数

    不是原创,原文链接: https://blog.csdn.net/u014028956/article/details/46810537

    1、首先要声明一个类型;

            type  TProc = procedure(str:string) of object;     //这里的of object 一定要,不然会出错,也可能是有些方法自己不知道吧,希望知道的可以告诉一声;

    2、定义一个过程

    procedure test(str:string);    //注意这个作为参数的函数内部的参数必须和TProc 的参数一样;
    begin
        showmessage(str);
    end

    3、定义一个调用test 这个函数的函数

    procedure  dotest(F:TProc);
    begin
       F('这是回调函数的测试');
    end

    4、 就可以使用了

    procedure show();
    begin
         dotest(test);
    end

    完整例子如下:

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,ComCtrls, StdCtrls;
     
    type
      TFunc = procedure() of object;
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
       function myTest(f:TFunc):string;
       procedure abc();
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.abc;
    begin
      showmessage('这是回调函数测试');
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       myTest(abc);
    end;
    
    function TForm1.myTest(f:TFunc):string;
    begin
       f();
    end;
    
    end.
  • 相关阅读:
    Hive的安装和使用
    Redis 慢查询日志
    GO语言-数组
    ZooKeeper-3.3.4集群安装配置
    GO语言-基础语法:循环
    GO语言-基础语法:条件判断
    GO语言-基础语法:变量定义
    nginx限制下载速度
    Centos7下Etcd集群搭建
    浅谈spj
  • 原文地址:https://www.cnblogs.com/hjdgz/p/11818608.html
Copyright © 2011-2022 走看看