我在Borland C ++ Builder 6中创建了一个mdi应用程序。
我做了2个表格:
我将子表单设置为可用表单。
当我想打电话给儿童表格时。我使用以下命令:
Application->CreateForm(__classid(TChildForm), &ChildForm); //calling Child form
为什么当我再次调用命令时,这个孩子会像这样形成2?
答案 0 :(得分:1)
首先,请勿使用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;
}