使用Delphi XE的多个模态对话框出现问题

时间:2011-06-07 09:00:37

标签: windows delphi modal-dialog ribbon delphi-xe

这是我的问题。

我运行主应用程序并打开模态对话框1,此时主应用程序屏幕被禁用,所有焦点都在新对话框1上。

从这个对话框1我打开另一个模态对话框2。所以现在主屏幕和对话框1被禁用,这个对话框2具有所有焦点。到目前为止完美。

现在,当我关闭这个顶级对话框2时,我希望它只是跳回到dialog1。它专注于dialog1,但它现在已启用主应用程序,您可以单击任何向后发送dialog1但保持打开状态的应用程序。这导致1%的问题,用户不仅仅立即关闭对话框1并且点击周围。你可以想象QA不喜欢这个; o)

看起来Windows有点混乱,因为主应用程序似乎知道它仍然打开dialog1,因为功能区上的按钮仍然按下。

有什么想法吗?

我到目前为止所做的最好的事情是明确设置:

dialog1.PopupMode := pmExplicit; dialog1.PopupParent := MainFrm;

即使您单击主应用程序,当您关闭dialog2时,这似乎会使对话框保持在主应用程序的顶部。因此,这将鼓励用户关闭它,但不是100%正确。

编辑:我已经创建了一个独立的应用程序,它按预期运行。关闭窗口时,控制和焦点从dialog2返回到dialog1,然后在dialog1关闭时返回主应用程序。在我们的功能区代码中提出了一些我无法找到的东西。哼!

1 个答案:

答案 0 :(得分:0)

这是一个已知的错误。查看11年前的报告http://borland.public.delphi.ide.narkive.com/fVG9CSwl/big-problem-in-delphi-with-modal-forms-please-help 我也有。我有一个关于embarcadero QA中的错误报告的链接。你无能为力。

相关问题