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 回调函数与函数指针

1.回调函数其实就是通过函数指针进行调用函数的,具体使用例子如下        a)  定义回调函数类型   type THDFunction=function(k:i...

Delphi回调函数的使用-例子

功能大体描述:Form1中有一个Edit和一个Button,当点击BUTTON时弹出FORM2,FORM2中也有一个EDIT和一个BUTTON,当点击FORM2中的BUTTON时,将FORM2中的ED...

Delphi中回调函数的使用

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi中的回调函数

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

将函数或过程作为参数进行传递实例

又名:将事件作为参数进行传递实例 首先要明白DELPHI中的事件是指针来的。 1 声明一个事件: type     TChangeEvent = procedure (ASelectType,...

[delphi] 让AllocateHwnd接受一般函数地址作参数

Classes单元的AllocateHWnd函数是需要传入一个处理消息的类的方法的作为参数的,原型: Delphi(Pascal) code function AllocateHWnd(Meth...
  • s11ss
  • s11ss
  • 2012年04月05日 22:19
  • 1520

delphi 定义变量同时赋值

全局变量可以定义同时赋值 var s:string = 'abc'; implementation var i:integer = 100; kk:array[1..3] of in...

Delphi调用API函数实例

什么是API函数Win32 API即为Windows应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。早期...

[DELPHI-码农]理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数

//要点15: 调用其他单元的函数 //包含函数的单元: unit Unit2; interface function MyFun(x,y: Integer): Integer; {函数必须在接口...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi 回调函数例子 用函数过程作为参数
举报原因:
原因补充:

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