首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++Builder 子窗口有关问题

2013-01-08 
C++Builder 子窗口问题先创建主窗口(mainform)、子窗口1(childform1)、子窗口2(childform2)。在主窗口(mainfo

C++Builder 子窗口问题
先创建主窗口(mainform)、子窗口1(childform1)、子窗口2(childform2)。

在主窗口(mainform)中new出 子窗口1(childform1) ,再在子窗口1中new出窗口2(childform2),但是窗口2中无法调用子窗口1中的数据(这样调用的:childform1->Edit1...),是因为子窗口1没有句柄无法调用吗?那应该怎么实现?

另外 主窗口要生成很多子窗口1,那么子窗口2 如何知道自己是被哪个子窗口1生成的呢?
[解决办法]
应当尽量减少窗体间的耦合,在调用窗体2的时候,把窗体2所需要的数据作为参数传递进去,这样在窗体2中就不用在翻回头访问窗体1了
[解决办法]
childform2单元的头文件中:

// 换成你的childform1的头文件名

#include "Unit1.h"

...
private:
    TForm1 *m_Form1;
public:
    __fastcall TForm2(TComponent* Owner, TFom1 *Form1);
...


在childform2的.cpp文件中:
__fastcall TForm2::TForm2(TComponent* Owner, TFom1 *Form1)
    : TForm(Owner), m_Form1(Form1)
{
}


childform1中生成childoform2:
TForm2 *frm = new TForm2(Application, this);


然后就可以在childform2的成员函数中使用m_Form1->Edit1这样的方式直接访问childform1的成员了。

热点排行