delphi 回调函数例子 用函数过程作为参数

原创 2015年07月08日 23:28:14

今天有个朋友问我怎么用函数或者过程作为函数的参数呢,我说网上有挺多的,然而他告诉我很多例子运行不起来,我搜了几个测试了下,不知道是不是我自己的软件版本的问题,运行不了,所以自己研究了下,把自己能运行的贴出来,和大家分享分享。


先说说回调函数需要注意的几个步骤吧,

首先要声明一个类型;

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


第二步:定义一个过程

      

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


      

第三步 定义一个调用test 这个函数的函数

   

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

第四步 就可以使用了


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.


测试结果是这样的





       

版权声明:本文为博主原创文章,未经博主允许不得转载。

Delphi中的回调函数

Delphi中的回调函数回调函数    回调(CallBack)函数就是一种两个对象之间的通知方法。被通知者事先约定好发生某种情况时的处理函数,在该情况发生时发起通知者调用该处理函数以完成回调。举例来...
  • snowfog
  • snowfog
  • 2003年11月18日 10:02
  • 5877

delphi 回调函数与函数指针

1.回调函数其实就是通过函数指针进行调用函数的,具体使用例子如下        a)  定义回调函数类型   type THDFunction=function(k:i...
  • u010219209
  • u010219209
  • 2015年08月21日 12:15
  • 1065

delphi 回调函数

今天在DELPHI上随便编写了个回调函数的例子,怕以后忘了,赶紧给它给记下来,呵呵。 觉的好简单,什么都没有,只是在同一个单元内,利用了DELPHI的多线程调用回调函数,高手别见笑哈!下次肯 定要...
  • zhangjie_xiaoke
  • zhangjie_xiaoke
  • 2010年12月26日 19:52
  • 235

Delphi中的回调函数

Delphi中的回调函数 回调函数 回调(CallBack)函数就是一种两个对象之间的通知方法。被通知者事先约定好发生某种情况时的处理函数,在该情况发生时发起通知者调用该处理函数以完成回调。举例来...
  • whsunbin
  • whsunbin
  • 2012年08月20日 10:39
  • 268

Delphi 回调函数

回调函数: ① type    FunctionType = function(num: Integer): Integer; // 定义过程类型,申明在单元文件的type下面 Tform之前 ...
  • qq_25235869
  • qq_25235869
  • 2016年11月14日 11:20
  • 291

delphi 中的函数指针 回调函数

delphi 中的函数指针 回调函数
  • rznice
  • rznice
  • 2015年01月27日 08:49
  • 2650

Delphi中回调函数的使用

 我不善言表,只能用例子来说明,以下为一个例子:功能大体描述:Form1中有一个Edit和一个Button,当点击BUTTON时弹出FORM2,FORM2中也有一个EDIT和一个BUTTON,当点击F...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2008年03月13日 13:44
  • 1361

Delphi回调函数的使用-例子

功能大体描述:Form1中有一个Edit和一个Button,当点击BUTTON时弹出FORM2,FORM2中也有一个EDIT和一个BUTTON,当点击FORM2中的BUTTON时,将FORM2中的ED...
  • Tercel99
  • Tercel99
  • 2009年09月30日 17:29
  • 2044

回调函数总结

1.基础知识   所谓回调,就是模块A要通过模块B的某个函数b()完成一定的功能,但是函数b()自己无法实现全部功能,需要反过头来调用模块A中的某个函数a()来完成,这个a()就是回调函数 ...
  • a568921915
  • a568921915
  • 2017年03月24日 16:01
  • 492

回调函数实例与分析

回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgP...
  • fsc2988877
  • fsc2988877
  • 2007年02月28日 19:07
  • 1210
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi 回调函数例子 用函数过程作为参数
举报原因:
原因补充:

(最多只允许输入30个字)