delphi - 如何在其事件处理程序中释放对象?

标签 delphi

我有 TMyClass,一个从 TObject 派生的类。它有一个 TTimer。每隔几分钟,我会从 Timer.OnTimer 检查一个网页。当网页发生变化时,我就完成了,我想释放 MyClass。我如何释放它?

我的问题类似于 this一个但我的“控件”不是 TControl。它是 TObject 的后代。因此,消息将不起作用。
显然,解决方案是从 TControl 或更高版本派生我的类。但是,假设我不想这样做。在这种情况下,解决方案是什么?

最佳答案

使用消息背后的基本思想是正确的:确保在当前调用它的任何代码完成之后,该对象在稍后被释放。

几年前,我写了一篇Delayed Action该单元为您提供了一种无需 TControl 即可实现相同效果的简单方法。您只需调用DelayExec并将一个匿名方法传递给它,该方法将释放该对象,并在内部设置一条消息,一旦消息队列被抽出,它就会发生。

关于delphi - 如何在其事件处理程序中释放对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576773/

相关文章:

delphi - 如何减少 Delphi 中的 PageControl 闪烁?

delphi - 如何通过拖动鼠标在DelphiXE6 VCL分组框中选择多个控件?

delphi - Delphi 从哪里获取 BDSCOMMONDIR 的值?

xml - 释放时 TXMLDocument 'Invalid pointer operation'

delphi - 在预分配内存上使用 Delphi 对象构造函数

windows - 控制 Delphi 2006 中新打开窗口的位置 (x,y)

delphi - 如何在 Delphi IDE 中组织大型项目

delphi - cxgrid列过滤器选项“之间”

.net - 将图像从 .NET 传输到 Delphi

delphi - Windows 7 上 WTSOpenServer 发生奇怪崩溃(仅在 Delphi 2009/2010 中)