gpt4 book ai didi

delphi - 应用程序关闭时表单中是否会触发事件

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

我的应用程序生成了几个独立的表单。一旦创建,应用程序就会忘记它们。所有操作均以该形式本身处理。我想,当应用程序关闭时,表单也会通过 RTS 关闭。这很好,只是 OnClose 和 OnDestroy 事件都没有被触发,因此会发生内存泄漏。我可以管理存在哪些表单(就像我现在所做的那样),但实际上应用程序必须完全忘记这些表单。

有没有办法在表单(不是应用程序主表单)内部检测应用程序是否正在关闭?

最佳答案

如果表单被销毁,OnDestroy 事件肯定会触发。它是从表单的销毁代码中调用的。所以唯一的结论是你的表单没有被破坏,所以被泄露了。

有几种明显的方法可以确保您的独立表单不被泄露:

  1. 创建时,传递 ApplicationMainForm 作为表单的所有者参数。当所有者被摧毁时,它所拥有的一切也会被摧毁,包括你的表格。
  2. 在调用 Application.Run 返回后,从主表单析构函数或 .dpr 文件中显式销毁这些表单。

选项 1 是最常用的方法。

关于delphi - 应用程序关闭时表单中是否会触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000097/

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