我正在使用Delphi 6 Pro。我需要一个事件,当我的应用程序肯定关闭但在任何表单被销毁之前将触发。我想过在主窗体WndProc()中捕获WM_QUIT消息,但这不起作用,因为在我看到WM_QUIT消息之前,Forms开始销毁。我想知道是否有一个标准的Delphi事件,我可以用它来执行关闭事件链的这一点?我不能使用主窗体的FormClose()事件,因为它不能保证触发,并且FormDestroy()事件为时已晚。有什么想法吗?
答案 0 :(得分:14)
您不会在WM_QUIT
方法中看到WndProc()
消息到达,因为WM_QUIT
是消息循环停止运行的信号,因此它通常不会被分派到窗口程序。
您所询问的内容并无特定事件。但是,您可以执行的操作是打开项目的.dpr文件,并在调用Application.Run
出口后放置您需要的任何代码。消息循环不再运行,但Application
和MainForm
对象尚未释放。
答案 1 :(得分:8)
这样做的最佳方法(我多年来一直在研究这个问题)是通过SysUtils.pas中的AddTerminateProc()例程来连接一个过程。这种方法每次都有用,多年来我一直在使用它(除非你通过任务管理器终止进程)。