加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – Form.Release NIL

发布时间:2020-12-15 04:27:05 所属栏目:大数据 来源:网络整理
导读:如果Form.Release在使用该表单后调用,它将释放所有相关内存,但不会将该窗体变量设置为nil. if not assigned (Form1) then begin Application.CreateForm(Tform1,Form1); try // Do something finally Form1.Release end; end; 为了能够再次调用相同的代码,Fo
如果Form.Release在使用该表单后调用,它将释放所有相关内存,但不会将该窗体变量设置为nil.
if not assigned (Form1) then
  begin
    Application.CreateForm(Tform1,Form1);
    try
      // Do something
    finally
      Form1.Release
    end;
  end;

为了能够再次调用相同的代码,Form1在某些时候必须设置为nil.从发布我的描述不能做

Form1 := nil;

在释放之后,因为释放过程将在被调用之后直接返回,并且在实际上释放该表单之前.当Form.Release完成后,我无法检测到将表单var设置为nil.

这样做最好的方法是什么?

霍尔格

解决方法

放线
Form1 := nil;

刚刚打电话给Release.

发布只是向窗体发布一个CM_RELEASE消息,允许窗体在处理CM_RELEASE消息之前完成其队列(事件处理程序)中的内容,这意味着通常只是调用Free.所以,在调用Release之后,你不应该假定Form变量仍然指向一个有效的Form,因此把nil放在变量中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读