我正在使用德尔福 6 Pro。我需要一个在我的应用程序肯定关闭但在任何表单被销毁之前触发的事件。我曾考虑在主窗体 WndProc() 中捕获 WM_QUIT 消息,但这不起作用,因为在我看到 WM_QUIT 消息之前窗体开始破坏。我想知道在关闭事件链的这一点上是否有一个标准的 Delphi 事件可以用来执行代码?我不能使用主窗体的 FormClose() 事件,因为它不能保证触发,而且 FormDestroy() 事件为时已晚。有任何想法吗?
问问题
2785 次
2 回答
14
您不会在方法中看到WM_QUIT
消息到达,消息循环停止运行的信号也是如此,因此通常不会将它分派到窗口过程。WndProc()
WM_QUIT
您所问的内容没有特定的事件。但是,您可以做的是打开项目的 .dpr 文件并在调用Application.Run
退出后放置您需要的任何代码。消息循环不再运行,但Application
和MainForm
对象尚未被释放。
于 2011-10-11T00:04:26.647 回答
9
最好的方法(多年来我一直在研究这个问题)是通过 SysUtils.pas 中的 AddTerminateProc() 例程连接一个过程。这每次都有效,而且我多年来一直在使用它(除非您通过任务管理器终止该进程)。
于 2011-10-11T03:13:39.807 回答