delphi中点击按钮弹出窗口,在弹出窗口的操作

myownluckystar 2012-02-07 12:34:48
delphi中form1中的一个edit后面有个按钮,点击按钮弹出窗口form2,在弹出窗口form2中,根据选择条件查询出来的结果选中一条记录,点击确定按钮,使选中的值显示在form1中的那个edit框中,请问在form1的那个button事件中怎么写才能调用到form2中的确定按钮事件,请大家帮帮,急急急。。谢谢
...全文
672 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CryHunter 2012-02-07
  • 打赏
  • 举报
回复
2楼的方法貌似需要等待form2关闭后才能返回...
CryHunter 2012-02-07
  • 打赏
  • 举报
回复
在form2的单元文件中,form2的类前面定义如下:
type TFOnMessagBack = procedure(psMessage: string) of object;
在form2的类中申明一个私有成员:
private:
FOnMessagBack: TFOnMessagBack;
声明一个公共成员:
public:
property OnMessagBack: FOnMessagBack read FOnMessagBack write FOnMessagBack;
然后在form1中创建完form2后,给form2的OnMessagBack属性赋值:OnMessagBack = FOperateMessag;这个FOperateMessag是你在form1中定义的处理form2中传回来的消息的函数,它的定义必须和form2中的TFOnMessagBack一样,即:procedure FOperateMessag(psMessage: string);至于实现就你自己写了,按你的意思就是把psMessage赋值给button的caption。接下来,在form2的按钮点击事件中调用FOnMessagBack,如下:
if assigned(FOnMessagBack) then
FOnMessagBack('我要回传的字符串');
这样,form1中的FOperateMessag就能被触发,接到form2中按钮点击后传回来的字符串了。
上面的代码都是在这里敲的,可能会有个别错误的,请楼主自己核实下!希望能报道LZ!
弘石 2012-02-07
  • 打赏
  • 举报
回复
procedure buttononclick( sender );
var
form2: TForm2;
begin
form2 := TForm2.create(nil);
try
if form2.showmodal = mrok then
edt1.text := form2.xxx; //使用属性或方法
finally
form2.free;
end;
end;
CryHunter 2012-02-07
  • 打赏
  • 举报
回复
这个要用回调函数了,楼主如果需要我给你一个样板。
一共2个部分,分别下载。 用过BSskin或者VCLskin的哥们 支持的开发语言 Borland Delphi 4/5/6 Borland Delphi 7 Borland Delphi 8 Borland Delphi 2005 Borland Delphi 2006 CodeGear Delphi 2007 支持的操作系统 Windows Vista Wndows 2000/XP/2003 Windows NT4.0 Windows Me Windows 98/98SE Windows 95 版本信息 当前版本:3.0 文件大小:24.9MB 更新日期:2006-12-6 下载次数:22670 软件概述 Skin++ For Delphi目前全面支持Delphi4、Delphi5、Delphi6、Delphi7、Delphi8、Delphi2005、Delphi2006。 迄今为止,Delphi支持4种类型的应用程序: 1、VCL Forms Application – Delphi for Win32 (该类型在Delphi4/5/6/7/2005/2006所有版本包含); 2、VCL Forms Application – Delphi for .Net (该类型在Delphi8/2005/2006包含); 3、Windows Forms Application – C# Builder (该类型在Delphi2005/2006包含); 4、Windows Forms Application – Delphi for .Net (该类型在Delphi8/2005/2006包含)。 Skin++对以上4种Delphi程序类型做了全面的支持。 试用版本描述与运行截图 1.在本安装盘,包含了Delphi的各个版本(D6,D7,D8,D2005,D2006)Skin++测试例子; 2.关于如何使用Skin++,请参考文档《Skin++ For Delphi [All Edition]使用帮助》; 3.要查询Skin++所有的接口,请参考文档《Skin++接口描述》; 4.本安装盘提供一套试用皮肤PixOS.ssk,正式版用户将获得网站上更多更精美的皮肤。并可获得定期更新; 5.Skin++正式版提供强大的皮肤设计工具Skin++Builder。 该工具完成皮肤所有的设计工作,并可以全自动导入Windows主题、第三方主题; Skin++Builder使用详情请参考《Skin++Builder Help》; 6.案例说明: 我们以Delphi2006 VCL Win32的测试例子为例,描述其组成。 打开\Delphi 2006\VCL Forms Application - Delphi For Win32\目录的MDIAPP.exe 该例子是一个MDI类型的程序。主窗口部分演示Skin++在MDI方面处理的各个细节。 如:主菜单条、主弹出菜单、系统菜单、工具条、状态条、MDI客户区、MDI子窗口、MDI子窗口最大化后等各个部分的换肤细节。 Skin++ 3.0 可以对皮肤进行动态的色调设置 这个功能可以使您的程序可以瞬间拥有N套色调的皮肤。 更改色调样例1: 我们分以下几个页面对Delphi的全部控件进行了演示: Buttons、Static、Controls with ScrollBar(带滚动条的控件)、Splitter、TabControls、TrackBar & Progress、Misc Controls、Dialog、DataControls 6.1 Buttons 该部分我们演示了Skin++对Delphi的各种类型的按钮进行的换肤支持, 包括BitBtn按钮、SpeedButton、Tbutton、CheckBox、RadioBox 在该部分,还演示了对按钮进行多风格的换肤效果,“Style 2”按钮和其他按钮不同,呈现了其特有样式。 这种效果一般用在网络电话、多媒体软件、网络聊天等需要同时支持多种按钮风格的地方。 每个按钮具有其固定的5状态:正常、按下、高量、禁用、默认。在该窗体演示了每种按钮的5状态。 并且在Skin++ 3.0 ,支持Focus的效果。通过Tab或方向键可以看到焦点在每个按钮上移动。 6.2 Static 该部分演示了Skin++ 对Label、GroupBox、右键菜单、Panel、FlowPanel、GridPanel等控件的支持。 值得一提的是,Skin++对Label的支持是彻底,并且不像其他的换肤软件需要在窗体

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧