博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi回调函数
阅读量:4322 次
发布时间:2019-06-06

本文共 2187 字,大约阅读时间需要 7 分钟。

 

文章来源:

http://anony3721.blog.163.com/blog/static/5119742010866050589/

 

一.主单元

1 unit UnMain; 2  3 interface 4  5 uses 6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg, 8   Vcl.ExtCtrls; 9 10 type11   TFrmMain = class(TForm)12     Edit1: TEdit;13     Button1: TButton;14     Image1: TImage;15     procedure Button1Click(Sender: TObject);16   private17     {
Private declarations }18 procedure Test(str:string); {
定义一个用于回调的过程}19 public20 {
Public declarations }21 end;22 23 var24 FrmMain: TFrmMain;25 26 implementation27 {
引用子窗体单元}28 uses UnChild;29 {
$R *.dfm}30 31 procedure TFrmMain.Button1Click(Sender: TObject);32 begin33 {
调用Unit2的接口方法}34 CallUnit2(test);35 end;36 37 {
回调过程的实现部分}38 procedure TFrmMain.test(str: string);39 begin40 {
将str值副给Edit1}41 Edit1.Text:=str;42 end;43 44 end.
View Code

二.子单元

1 unit UnChild; 2  3 interface 4  5 uses 6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8  9 type10    TFuncCallBack = procedure(str:string) of object;11   TFrmChild = class(TForm)12     Edit1: TEdit;13     Button1: TButton;14     procedure Button1Click(Sender: TObject);15   private16   public17     {
定义一个回调函数类型的变量}18 aFuncCallBack:TFuncCallBack;19 end;20 {
提供给Unit1调用的接口方法,注意里面的参数的类型}21 procedure CallUnit2(FuncCallBack:TFuncCallBack);22 var23 FrmChild: TFrmChild;24 25 implementation26 27 {
$R *.dfm}28 {
接口方法的实现部分}29 procedure CallUnit2(FuncCallBack:TFuncCallBack);30 begin31 Application.CreateForm(TFrmChild,FrmChild);32 {
将参数赋值给FuncCallBack}33 FrmChild.aFuncCallBack:=FuncCallBack;34 FrmChild.ShowModal;35 end;36 37 procedure TFrmChild.Button1Click(Sender: TObject);38 begin39 {
当点击Form2的按钮时将Form2中的Edit的值传递给了Form1中的Edit}40 {
是不是很神奇?我并没有uses Unit1,但却改变了Form1中Edit的Text属性}41 aFuncCallBack(Edit1.Text);42 ModalResult:=mrOk;43 end;44 45 end.
View Code

 

转载于:https://www.cnblogs.com/FKdelphi/p/5843104.html

你可能感兴趣的文章
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>
【转载】OmniGraffle (一)从工具栏开始
查看>>
初识ionic
查看>>
java 中打印调用栈
查看>>
开发 笔记
查看>>
数据挖掘算法比赛 - 简单经验总结
查看>>
生成商户订单号/退款单号
查看>>
使用Android OpenGL ES 2.0绘图之六:响应触摸事件
查看>>
我们过去几年做对了哪些事
查看>>
ubuntu 16.04LTS
查看>>
javascript深入理解js闭包
查看>>
Oracle的安装
查看>>
Android Socket连接PC出错问题及解决
查看>>
Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
查看>>
第2天线性表链式存储
查看>>
python自动化测试-D11-学习笔记之一(yaml文件,ddt)
查看>>
mysql存储过程使用游标循环插入数据
查看>>
Ubuntu 12.04 添加新用户并启用root登录
查看>>