救命啊!大吐血昏倒~~~~~~ 关于MDI子窗口相互调用的问题!(200分)

  • 主题发起人 主题发起人 dylb
  • 开始时间 开始时间
D

dylb

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
小弟有如下问题不能解决:做一个MDI结构的系统,在主窗口下有两个子窗口A和B
当然A和B都是先Create在Show出来的。现在的问题是子窗口A如何能够直接访问子窗口B
的属性以及调用子窗口B的方法?还有就是子窗口A在访问B之前如何知道B已经Show出来
了?难道必须全部通过主窗口去中转吗?
 
你把子窗口互相,可以引用,然后就可以判断了吧!
 
uses一下
if Assigned(A) then//判断窗口是否已经创建
begin
//To do add your code here
end;
//这种问题应该去好好的看看书
 
在unitA中 uses unitB
然后就就可以同过formb.edit1 来访问formB的属性方法了
想判断formB是否已经show出来.方法多了
比如你可以在formB的单元里声明一个boolean类型
FormBShow:boolean;
在formBshow事件中将FormBShow设为true

在FormA单元中就可以判断了
if FormB.FormBShow then
{ do something you want to do}
还有,你可以自己定义一个消息呀
在formB的onshow事件中将这个消息发送给formA
在formA 中就可以对这个消息进行处理了
 
谁能够给出源代码,小弟测试通过,分数全部送上!!!!!!!!
 
谁能够给出源代码,小弟测试通过,分数全部送上!!!!!!!!

对源代码的命题如下:
子窗口A中设定一个按钮,按下时A判断B是否存在,如果B窗口存在的话,请
用showmessage窗口显示出B窗口的宽度属性(Width),否则显示不存在信息。
 
别偷懒啦!!!人家都提出思路了!!!
 
for(int i=0;i<Application.MainForm.mdichildcount;i++)
{
if(Application.MainForm.MDIChildren.Caption=="B窗口的Caption")
ShowMessage(MDIChildren.Width);
}
 
To:subwb
你的源代码测试通过,分数全部送上,不过我遇到的问题更加复杂一点,还没有解决。
象Width属性可以通过MDIChildren去直接访问。不过我现在的实际问题是我在B窗口
有一个statusbar控件来显示一些信息,A要如何去访问B上面的statusbar上的panels[0]
的text属性,这个问题已经困扰我很久了!
 
直接访问就可以吧
ShowMessage(Application.MainForm.MDIChildren.Statusbar.Panels.Items[0]->Text);
 
后退
顶部