子窗体在创建的过程中为什么用Application
在MainForm窗口中创建ChildForm,创建子窗口时需要传参,参数一定要是Application才可以。为什么呢?
void __fastcall TMainForm::CreateMDIChild(String Name)
{
TChildForm *Child = new TChildForm(Application);
}
如果在括号中去掉Application就会报错:
Could not find a match for "TChildForm::TChildForm()".
但是在TChildForm里定义的参数是 TComponent* Owner 。
如果参数不用Application,有没有其他的参数可以做代替?
[解决办法]
没什么规定,这个参数的意思是指定一个窗体的Owner(所有者),如果指定了一个有效的Owern,如当前窗体(this)或当前的应用程序实例(Application),那么动态生成的这个窗体,可以不考虑手动释放,Owner会负责释放的。
当然,你指定所有者为NULL,那么最后要自己负责所创建窗体的销毁。