1

我在Borland C++Builder 6中做了一个mdi应用。

我做了2个表格:

  1. 主要形式
  2. 子表

我将 Child Form 设置为Available Forms

当我想调用子表单时。我使用以下命令:

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

为什么当我再次调用命令时,子窗体变成这样的 2?

4

1 回答 1

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;
}
于 2014-05-18T06:47:31.237 回答