Delphi回调函数的使用-例子


Delphi回调函数的使用-例子

功能大体描述:Form1中有一个Edit和一个Button,当点击BUTTON时弹出FORM2,FORM2中也有一个EDIT和一个BUTTON,当点击FORM2中的BUTTON时,将FORM2中的EDIT的TEXT属性赋值给FORM1中的EDIT的TEXT。

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;

type TForm1 = class(TForm) {主窗体中放一个Edit和一个Button} Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } {定义一个用于回调的过程} procedure test(str:string); public { Public declarations } end;

var Form1: TForm1;

implementation {引用unit2} uses unit2; {$R *.dfm} {回调过程的实现部分} procedure TForm1.test(str: string); begin {将str值副给Edit1} Edit1.Text:=str; end;

procedure TForm1.Button1Click(Sender: TObject); begin {调用Unit2的接口方法} CallUnit2(test); end;

end.

unit Unit2;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type {定义一个回调函数类型} TFuncCallBack=procedure(str:string) of object; TForm2 = class(TForm) {Form2中也有一个Edit和一个Button} Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } {定义一个回调函数类型的变量} aFuncCallBack:TFuncCallBack; public { Public declarations } end; {提供给Unit1调用的接口方法,注意里面的参数的类型} procedure CallUnit2(FuncCallBack:TFuncCallBack);

var Form2: TForm2;

implementation

{$R *.dfm} {接口方法的实现部分} procedure CallUnit2(FuncCallBack:TFuncCallBack); begin Application.CreateForm(TForm2,Form2); {将参数赋值给FuncCallBack} Form2.aFuncCallBack:=FuncCallBack;

Form2.ShowModal; end; procedure TForm2.Button1Click(Sender: TObject); begin {当点击Form2的按钮时将Form2中的Edit的值传递给了Form1中的Edit} {是不是很神奇?我并没有uses Unit1,但却改变了Form1中Edit的Text属性} aFuncCallBack(Edit1.Text); ModalResult:=mrOk; end;

end.

优质内容筛选与推荐>>
1、使用Jquery+EasyUI 进行框架项目开发案例讲解之五--模块(菜单)管理源码分享
2、Android Studio NDK 新手教程(5)--Java对象的传递与改动
3、诫子篇
4、Compute Shader基础
5、Spoken English Practice(I really hate to give her up, oh ,I know, you should take her.)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号