首页 > 代码库 > delphi回调函数
delphi回调函数
疯狂delphi
delphiXE7、XE8、XE10公开课A 群号:58592705
delphi回调函数
文章来源:
http://anony3721.blog.163.com/blog/static/5119742010866050589/
一.主单元
unit UnMain;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg, Vcl.ExtCtrls;type TFrmMain = class(TForm) Edit1: TEdit; Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } procedure Test(str:string); {定义一个用于回调的过程} public { Public declarations } end;var FrmMain: TFrmMain;implementation{引用子窗体单元}uses UnChild;{$R *.dfm}procedure TFrmMain.Button1Click(Sender: TObject);begin {调用Unit2的接口方法} CallUnit2(test);end;{回调过程的实现部分}procedure TFrmMain.test(str: string);begin {将str值副给Edit1} Edit1.Text:=str;end;end.
二.子单元
unit UnChild;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;type TFuncCallBack = procedure(str:string) of object; TFrmChild = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private public {定义一个回调函数类型的变量} aFuncCallBack:TFuncCallBack; end; {提供给Unit1调用的接口方法,注意里面的参数的类型} procedure CallUnit2(FuncCallBack:TFuncCallBack);var FrmChild: TFrmChild;implementation{$R *.dfm}{接口方法的实现部分}procedure CallUnit2(FuncCallBack:TFuncCallBack);begin Application.CreateForm(TFrmChild,FrmChild); {将参数赋值给FuncCallBack} FrmChild.aFuncCallBack:=FuncCallBack; FrmChild.ShowModal;end;procedure TFrmChild.Button1Click(Sender: TObject);begin {当点击Form2的按钮时将Form2中的Edit的值传递给了Form1中的Edit} {是不是很神奇?我并没有uses Unit1,但却改变了Form1中Edit的Text属性} aFuncCallBack(Edit1.Text); ModalResult:=mrOk;end;end.
http://www.cnblogs.com/FKdelphi/p/5843104.html
delphi回调函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。