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);
...
__fastcall TForm2::TForm2(TComponent* Owner, TFom1 *Form1)
: TForm(Owner), m_Form1(Form1)
{
}
TForm2 *frm = new TForm2(Application, this);