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更严格些吧?

  • 相关阅读:
    Django之DRF框架
    工单系统之用户模块整体实现
    用户模块+jwt实现+注册带token值
    iOS控件之UITableView之滚动
    iOS控件之UITableView
    iOS控件
    iOS 长连接
    MAC PHP Composer
    smartSVN 删除目录/仓库
    smartSVN 分支与合并
  • 原文地址:https://www.cnblogs.com/moon25/p/1589910.html
Copyright © 2011-2022 走看看