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.