【发布时间】:2017-03-03 03:18:52
【问题描述】:
我们的应用程序使用“MDI”(大多数问题已在 TForm 后裔中得到解决)。在大多数表单中,如果数据已更改,则它拒绝关闭(使用 closequery)并告诉用户保存或取消。这工作得很好。
但与其他人不同,如果应用程序正在死去,我想跳过这个。这可能是因为用户单击了 MainForm 上的 X。我只是希望应用程序死掉 - 不保存数据等。
问题是 MainForm 的 CloseQuery 在所有 mdichild 表单之后触发。我在 MainForm 中尝试过 wm_close、wm_quit 甚至是 windproc。但他们没有及时开火。
当我在 mdichild 中获得 formclosequery 时,我无法知道该表单是被用户杀死还是被杀死的应用程序。
当然有一种简单的方法可以做到这一点。我错过了什么?
【问题讨论】:
-
你能在主窗体中展示你如何处理 WM_CLOSE
-
@ken 它是 MS,后向兼容性为王,一如既往地工作,耳语它,但我的应用程序是 mdi.....
-
@David:是的,我知道。你最后没看到 ;-) 吗?
-
点击
MainForm的X会先通知MainForm,然后再通知它的子表单。如果您在处理WndProc()中的初始通知时遇到问题,那么您可能没有正确处理它。请出示您的实际代码。 -
这似乎是客户要求的一种奇怪行为。你确定你理解正确吗?
标签: delphi windows-10 mdi formclosing