Borland C ++ Builder 6 MDI应用程序

时间:2014-05-18 06:15:51

标签: c++builder c++builder-6

我在Borland C ++ Builder 6中创建了一个mdi应用程序。

我做了2个表格:

  1. 主表格
  2. 儿童表格
  3. 我将子表单设置为可用表单

    当我想打电话给儿童表格时。我使用以下命令:

    Application->CreateForm(__classid(TChildForm), &ChildForm); //calling Child form
    

    为什么当我再次调用命令时,这个孩子会像这样形成2?

1 个答案:

答案 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;
}