gpt4 book ai didi

delphi - 表格.发布 + NIL

转载 作者:行者123 更新时间:2023-12-03 14:39:28 28 4
gpt4 key购买 nike

如果在使用表单后调用 Form.Release,它将释放所有相关内存,但不会将表单变量设置为 nil。

if not assigned (Form1) then
begin
Application.CreateForm(Tform1, Form1);
try
// Do something
finally
Form1.Release
end;
end;

为了能够再次调用相同的代码,Form1 必须在某个时刻设置为 nil。从Release的描述来看我做不到

Form1 := nil;

就在Release之后,因为Release过程将在调用之后、窗体实际释放之前直接返回。我无法检测 Form.Release 何时完成以将表单 var 设置为 nil。

最好的方法是什么?

最佳答案

放线

  Form1 := nil;  

就在调用 Release 之后。

发布只是将 CM_RELEASE 消息发布到表单,这允许表单在处理 CM_RELEASE 消息之前完成其队列(事件处理程序)中的内容,这意味着通常只调用 Free。
因此,在调用 Release 之后,您不应该假设 Form 变量仍然指向有效的 Form,从而将 nil 放入变量中。

关于delphi - 表格.发布 + NIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274523/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com