先创建主窗口(mainform)、子窗口1(childform1)、子窗口2(childform2)。
在主窗口(mainform)中new出 子窗口1(childform1) ,再在子窗口1中new出窗口2(childform2),但是窗口2中无法调用子窗口1中的数据(这样调用的:childform1->Edit1...),是因为子窗口1没有句柄无法调用吗?那应该怎么实现?
childform1中生成childoform2:
然后就可以在childform2的成员函数中使用m_Form1->Edit1这样的方式直接访问childform1的成员了。
在主窗口(mainform)中new出 子窗口1(childform1) ,再在子窗口1中new出窗口2(childform2),但是窗口2中无法调用子窗口1中的数据(这样调用的:childform1->Edit1...),是因为子窗口1没有句柄无法调用吗?那应该怎么实现?
另外 主窗口要生成很多子窗口1,那么子窗口2 如何知道自己是被哪个子窗口1生成的呢?
---------------------------------------------------------------------------------------------------------------------------------------
重载子窗口2的构造函数,将子窗口1的实例名字传入。
childform2单元的头文件中:
// 换成你的childform1的头文件名
1
2
3
4
5
6
7
8
|
#include "Unit1.h"
...
private
:
TForm1 *m_Form1;
public
:
__fastcall TForm2(TComponent* Owner, TFom1 *Form1);
...
|
在childform2的.cpp文件中:
1
2
3
4
|
__fastcall TForm2::TForm2(TComponent* Owner, TFom1 *Form1)
: TForm(Owner), m_Form1(Form1)
{
}
|
childform1中生成childoform2:
1
|
TForm2 *frm =
new
TForm2(Application,
this
);
|
然后就可以在childform2的成员函数中使用m_Form1->Edit1这样的方式直接访问childform1的成员了。