起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 270|回复: 12

【结】窗体间的控件赋值**

[复制链接]
发表于 2008-4-23 10:02:46 | 显示全部楼层 |阅读模式
请问
运行主窗体(AForm)时,先跳出子窗体(BForm),我按照
http://bbs.justep.com/forum.php?mod=viewthread&tid=22550
这个贴做出来了,但是,我想把子窗体(BForm)中的控件的值
赋给主窗体(AForm)中的控件,要怎么样才能实现?
回复

使用道具 举报

发表于 2008-4-23 10:12:04 | 显示全部楼层
子窗体设一个变量,在主窗体创建子窗体的代码后面,把主窗体赋值给这个变量。
子窗体就能透过这个变量访问到主窗体的控件了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 10:34:46 | 显示全部楼层
大哥,你看了上面那个连接了吗?
上面那个连接是重载业务功能的DoRun方法来把子窗体show出来的
(我没有在主窗体中创建子窗体,我的不是主窗体调用子窗体),我想把子窗体中的控件的值赋给主窗体中的控件!!

重载业务功能的DoRun方法如下:
procedure TKHWLLQGN.DoRun;
var
   BForm : TKHWLLQTJ;
begin
     BForm := TKHWLLQTJ.Create(self.Context);
     try
        if BForm.ShowModal = business.Forms.Controls.mrOk then
        begin
             inherited
        end
        else
        begin
          MainForm := nil;
          MainFormName := '';
          self.Terminate;
        end;
     finally
            BForm.Free;
     end;
end;
回复 支持 反对

使用道具 举报

发表于 2008-4-23 10:44:36 | 显示全部楼层
大哥,我说的是原理。您的特殊需求,需要您灵活运用了。
回复 支持 反对

使用道具 举报

发表于 2008-4-23 11:03:03 | 显示全部楼层
楼主,你别这样做,你把现在的子窗体设置为主窗体,把原先的主窗体设置子窗体,这样就不需要在功能的DoRun上做动作了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 11:16:20 | 显示全部楼层
5楼
你的意思是叫我像你说的那样设了之后,把子窗体show出来之后就隐藏主窗体是吧?
如果这样子做了,还有一个功能是:在子窗体里点击某按扭之后要显示主窗体
这一步我不懂得怎么来显示
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 11:27:36 | 显示全部楼层
全部需求是这样的:
运行功能时,先显示AForm如果点击AForm中的"确定"按扭后显示BForm,
如果点击AForm 中的"取消"按扭就关闭程序(即AForm和BForm都关闭),
还有当BForm显示出来后,点击"查询"按扭时,再显示AForm

如果像5楼说的,前面的可以实现,就差后面怎么在BForm中显示AForm这一步
回复 支持 反对

使用道具 举报

发表于 2008-4-23 13:26:50 | 显示全部楼层
在BForm中显示AForm?怎么理解你的意思,是把AForm显示在BForm上吗?那么show AForm就可以了,把AForm的parent设置为Bform的窗体的某个控件上,例如panel等

另外,我感觉,你用一个PageControl,做两个TabSheet 来进行切换,这样更简单
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 15:03:45 | 显示全部楼层
PageControl是不符合我的需求了

是把AForm显示在BForm上,但是怎么把AForm show 出来?
还有:把AForm的parent设置为Bform的窗体的某个控件上,例如panel等
这个又怎么设置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-23 15:07:44 | 显示全部楼层
AForm是主窗体,BForm是子窗体,AForm引用BForm,后然,又在BForm中调用AForm,这样会不会循环引用?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 18:47 , Processed in 0.040568 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表