易截截图软件、单文件、免安装、纯绿色、仅160KB

偶尔提示错误access violation

偶尔出现的access violation错误,MDI主窗体有2个菜单按钮打开子窗口时偶尔出现,完全是随机性,
单步调试的时候不会出现错误(我试过几百次,都没错误)
某个错误的按钮代码:
procedure TMainForm.N48Click(Sender: TObject);
begin
    if not Assigned(Data_xz_Form) then
      Data_xz_Form:=TData_xz_Form.Create(Application);
end;
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;


子窗口  onclose事件里面

    action := caFree;
  Data_xz_Form := nil;

引用
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;



Data_xz_Form不单单只对象本身,而是指指向对象的地址,因此需要最后要把指针释放。
否则,释放了对象,指针还没有为空,再次指向的时候就会报告无效地址错误(AV错误)。

估计是 没有初始化某个对象之类的问题

引用
既然用到 Assigned 作判断,那么判断的对像在释放时,用FreeAndNil(Data_xz_Form),或者在 Data_xz_Form.free;后面加行Data_xz_Form := nil;


非常有理,Assigned只能判断当前指针是否为nil,并不能判断Data_xz_Form是否有效,在Delphi中nil指向的地址是为0的,也就是如果Data_xz_Form指向的地址大于0,你释放之后,没有Data_xz_Form := nil,Assigned是判断不出来的。

具体


相关问答:

Access查找重复问题

ACCESS数据库中有一个tablename表,设计如下 
编号,书名,作者,出版时间,出版社,ISBN,目录,简介
其中除“编号”为自动编号外,其它都为“备注” 
其中"编号"维一,在“ISBN”中有的为空值, ......

Vb.net Access CrystalReport - .NET技术 / VB.NET

第一次接触CrystalReport
急寻找Vb.net Access 通过查询出的数据输出到CrystalReport的例子.
有的朋友麻烦发来学习.多谢!
跟你的要求差不多,参考一下:
http://topic.csdn.net/u/20090823/21/87af02d3-f4ca-480 ......

如何将access里面的附件保存到磁盘上呢

请大侠指点,跪谢了,最好有代码
要用到ADOX对象,查下帮助文档,
http://hyadliujing.blog.163.com/blog/static/4484507420091020969233/?mode=edit

没有找到啊 看了你的博客了,我是想将access里面的附件保存 ......

关于ACCESS和MSSQL的问题 - Web 开发 / ASP

有一个数据库里只有2W条数据不到,却有500M那么大,怎么回事啊?是ACCESS的数据库。后来我把ACCESS导入到MSSQL中,也占用了500M左右的空间,如果压缩数据库呢?请高手指点
压缩数据库?能做到么...
期待高人指点 我 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号