new 出来的Form在OnClose中写了Action=caFree,真的可以释放吗? 如果可以那这种情况该怎么解释呢?
void __fastcall TfrmMultPathSelect::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action=caFree;
}
void __fastcall TfrmMultpathcollect::Image1DblClick(TObject *Sender)
{
frmMultPathSelect=new TfrmMultPathSelect(Application);
frmMultPathSelect-> ShowModal();//显示出窗体 frmMultPathSelect后 就关闭
frmMultPathSelect-> Update();
ShowMessage(frmMultPathSelect-> edtNewname-> Text);//但这时显示的还有值
}
}
[解决办法]
new ----> delete
malloc ----> free
基础抓起...
[解决办法]
void __fastcall TfrmMultpathcollect::Image1DblClick(TObject *Sender)
{
frmMultPathSelect=new TfrmMultPathSelect(Application);
frmMultPathSelect-> ShowModal();//显示出窗体 frmMultPathSelect后 就关闭
frmMultPathSelect-> Update();
delete frmMultPathSelect; //如果改成这样的话 就不显示了
ShowMessage(frmMultPathSelect-> edtNewname-> Text);
}
你双击的时候才NEW出来的。想想它们之间的先后顺序。
[解决办法]
OnClose 加 Action = caFree 释放的是由Windws 系统控制的frmMulPathSelect所关联的窗口,OnClose以后,窗口不存在了,但frmMultPathSelect对象还存在,
加上delete frmMultPathSelect后,就把frmMultPathSelect对象也删除了!