读书人

new的窗体第二次关闭时提示:access v

发布时间: 2012-02-17 17:50:42 作者: rapoo

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; 是正道。

读书人网 >C++ Builder

热点推荐