问题与多个modal dialog使用Delphi XE

这是我的问题。

我有主应用程序运行,并打开一个模式对话框1,在这一点上主应用程序屏幕被禁用,所有焦点在新的对话框1。

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

现在当我closures这个顶级对话框2时,我希望它只是跳回到dialog1。 它着重于dialog1,但它的主应用程序现在已启用,您可以单击任何地方发送dialog1后面,但保持打开状态。 这会导致1%的时间出现问题,用户不会立即closuresdialog1并点击左右。 你可以想像QA不喜欢这样; o)

它看起来像Windows有点困惑,因为主应用程序似乎知道它仍然打开dialog1,因为function区上的button仍然closures。

有任何想法吗?

我迄今为止pipe理得最好的是明确设定:

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

当你closuresdialog2时,即使你点击了主应用程序,这似乎仍然保持主应用程序的on1。 所以这将鼓励用户closures它,但不是100%正确的。

编辑:我已经创build了一个独立的应用程序,并按预期的function。 在closures窗口时,当dialog1closures时,控制和焦点从dialog2返回到dialog1,然后返回到主应用程序。 build议其他东西在我们的丝带代码,我找不到。 哼!

这是一个已知的错误。 看到11年前的报告http://borland.public.delphi.ide.narkive.com/fVG9CSwl/big-problem-in-delphi-with-modal-forms-please-help我也有。 我有一个链接到embarcadero QA的bug报告。 没有什么可以做的。