我正在使用 Delphi 6 Pro。我需要一个事件,在我的应用程序明确关闭但在任何窗体被销毁之前触发。我考虑通过在主窗体 WndProc() 中捕获 WM_QUIT 消息来实现,但是这并没有起作用,因为窗体开始销毁之前我看不到 WM_QUIT 消息。我想知道是否有一个标准的 Delphi 事件可以在关闭链的这一点上执行代码?我不能使用主窗体的 FormClose() 事件,因为它不能保证触发;FormDestroy() 事件则太晚了。有什么建议吗?
我正在使用 Delphi 6 Pro。我需要一个事件,在我的应用程序明确关闭但在任何窗体被销毁之前触发。我考虑通过在主窗体 WndProc() 中捕获 WM_QUIT 消息来实现,但是这并没有起作用,因为窗体开始销毁之前我看不到 WM_QUIT 消息。我想知道是否有一个标准的 Delphi 事件可以在关闭链的这一点上执行代码?我不能使用主窗体的 FormClose() 事件,因为它不能保证触发;FormDestroy() 事件则太晚了。有什么建议吗?
在 WndProc()
方法中,您不会看到一个 WM_QUIT
消息的到来。因为 WM_QUIT
是一个信号,用于停止消息循环,因此通常不会分派给窗口过程。
对于您所要求的内容,没有特定的事件。但是,您可以打开项目的 .dpr 文件,在调用 Application.Run
退出后放置您需要的任何代码。消息循环不再运行,但 Application
和 MainForm
对象尚未被释放。
实现这个功能的最佳方式(多年来我一直在研究)是通过在SysUtils.pas中使用AddTerminateProc()例程连接一个过程。除非您通过任务管理器终止进程,否则此方法每次都有效,并且我已经使用它多年。