zoukankan      html  css  js  c++  java
  • [DELPHI]对象没有nil引起的程序异常

    现有的一个项目在D2009下编译,运行正常,换到D2010下编译正常,运行正常,但在点击退出时出现异常。

    7

    像平时遇到这样的问题,第一感觉是:

    1.对象没有创建就访问

    2.对象重复释放

    因为是在退出的按钮事件中出错,而退出的代码只有一条close语句。所以怀疑是有对象重复释放。

    但找半天也没有找出问题所在。

    后来无意间想到我用到了登陆窗口,会不会是登陆窗口窗体引起的问题。

    把工程文件打开:

    frmLogin := TfrmLogin.Create(Application);
      frmLogin.ShowModal;
      try
        if frmLogin.ModalResult = 1 then
        begin
          frmLogin.Free;
          frmLogin:=nil;   //出错时,没有这一句
          Application.CreateForm(TfrmANAM, frmANAM);
          Application.Run;
        end;
      finally
        frmLogin.Free;
      end;

    最后加上了一句frmLogin:=nil就可以了。

    通过这次以后,记得以后对象不仅要free,还要赋值为nil。至于为什么d2009不报错,就不得而知。可能是d2010更严格些吧?

  • 相关阅读:
    解决:只有 DBA 才能导入由其他 DBA 导出的文件
    查找—顺序查找
    软件测试,想说爱你不容易
    Oracle常用SQL
    排序—直接插入排序
    排序—归并排序
    排序—快速排序
    排序—选择排序
    查找—折半查找
    排序—堆排序
  • 原文地址:https://www.cnblogs.com/moon25/p/1589910.html
Copyright © 2011-2022 走看看