Проблема с несколькими модальными диалогами при использовании Delphi XE

Вот моя проблема.

У меня запущено основное приложение, и я открываю модальное диалоговое окно1, в этот момент главный экран приложения отключен, и все внимание сосредоточено на новом диалоговом окне1.

Из этого диалога1 я открываю другой модальный диалог2. Итак, теперь главный экран и диалог1 отключены, и весь фокус находится в этом диалоге2. Пока идеально.

Теперь, когда я закрываю этот верхний диалог2, я ожидаю, что он просто вернется к диалогу1. Он фокусируется на dialog1, но теперь основное приложение включено, и вы можете щелкнуть в любом месте, которое отправляет диалог1 позади, но оставляет его открытым. Это вызывает проблемы в 1% случаев, когда пользователь не сразу закрывает диалоговое окно1 и продолжает щелкать мышью. Как вы понимаете, QA это не нравится; o)

Похоже, Windows немного запуталась, потому что основное приложение, похоже, знает, что диалоговое окно все еще открыто, поскольку кнопка на ленте все еще не нажата.

Есть идеи?

Лучшее, что мне удалось до сих пор, - это указать явно:

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

Кажется, что диалог1 остается поверх основного приложения, когда вы закрываете диалог2, даже если вы щелкаете по основному приложению. Так что это побудит пользователя закрыть его, но это не на 100% правильно.

Изменить: с тех пор я создал отдельное приложение, и оно функционирует должным образом. Когда вы закрываете окна, управление и фокус переходит от dialog2 к dialog1, а затем к главному приложению, когда dialog1 закрывается. Предполагается, что в коде нашей ленты происходит что-то еще, чего я не могу найти. Хмм!

6
задан Sertac Akyuz 8 June 2011 в 11:34
поделиться