new的窗体第二次关闭时提示:access violation at sddress 00000.Read of adderss 00000
代码是这样的
TForm3* Form3=new TForm3(this);
if(Form3-> ShowModal()==mrOk)
{
TForm7* Form7=new TForm7(this);
Form7-> m_strName=Form3-> UserEdit-> Text;
Form7-> ShowModal();
delete Form7;
}
delete Form3;
在Form7的“关闭”按扭里:Close();
在Form7的 void __fastcall TForm7::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
请问这个错误是什么,怎么改正了?
[解决办法]
Action = caFree;
是指在窗体关闭时释放.
你再用delete Form7;
就重复了,以上两处保留一处。
[解决办法]
Action = caFree; // 释放窗体
delete Form7; // 也是释放窗体
两个一起用的话就叫重复劳动。
[解决办法]
对于模态窗口一般delete 来处理
去年Action = caFree; 是正道。