我在Borland C++Builder 6中做了一个mdi应用。
我做了2个表格:
- 主要形式
- 子表
我将 Child Form 设置为Available Forms。
当我想调用子表单时。我使用以下命令:
Application->CreateForm(__classid(TChildForm), &ChildForm); //calling Child form
为什么当我再次调用命令时,子窗体变成这样的 2?
我在Borland C++Builder 6中做了一个mdi应用。
我做了2个表格:
我将 Child Form 设置为Available Forms。
当我想调用子表单时。我使用以下命令:
Application->CreateForm(__classid(TChildForm), &ChildForm); //calling Child form
为什么当我再次调用命令时,子窗体变成这样的 2?
首先,不要使用Application->CreateForm()
,new
而是使用:
ChildForm = new TChildForm(this);
第二,你描述的很正常。您正在创建一个独立子表单的新实例,这就是您所看到的。如果您不想要另一个孩子,请不要创建一个新孩子,重新使用您已有的孩子,例如:
if (!ChildForm)
{
ChildForm = new TChildForm(this);
}
// use ChildForm as needed...
TChildForm *ChildForm = NULL;
__fastcall TChildForm::~TChildForm()
{
ChildForm = NULL;
}
void __fastcall TChildForm::FormClose(TObject *Sender, TCloseAction& Action)
{
Action = caFree;
}