![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Модальное окно "прячется" за основную форму ??? [D7, WinXP]
DimDim © (2005-09-17 19:43:00)Уважаемые Мастера, помогите разобраться!
Суть вопроса: При запуске программы в OnActivate выполняются некоторые проверки и выдаются соответствующие сообщения в виде модальных диологовых окон (не системных). В WinXP эти окна ИНОГДА "прячутся" за главное окно программы и пользователи их не видят. В результате, внешне это выглядит как "зависшая" программа. Соответственно, процедура запуска (та, что в OnActivate) до конца не отработала и программа не работает.
Происходит это ТОЛЬКО на WinXP и абсолютно непредсказуемо. Т.е. в 2-х случаях из 3-х грузится нормально.
КиТаЯц (2005-09-21 10:06:00) [1]Было. Только на ХР.
Программа отрабатывает длинный цикл без всяких рефреший чтобы побыстрей. Нетерпеливый юзер кликает по заголовку главной формы - главная выходит поверх модального, а фокус остается на модальном.
Набил во все циклы Application.ProcessMessage;
Вроде помогло...
Экспериментатор (2005-09-21 08:47:00) [2]Было у меня такое.
Как бороться не знаю до сих пор.
Стал избегать продолжительных операций того рода
Aleksandr. (2005-09-20 15:48:00) [3]ИМХО, это глюк связанный с XP.
Я вообще эту хрень обходил тем, что по окончании всех инициализаций и т.д. вызывал Application.BringToFront, при котором нормально перестраивался ордер окон.
BFG9k (2005-09-20 15:41:00) [4]Видимо ты что-то криминальное делаешь после или до того, как модальное окно появилось. У меня такое было - программа при запуске сворачивалась в трей и одновременно с этим могло возникнуть информационное сообщение. Получалось все как у тебя. Решение - избегать таких ситуаций.
Deka (2005-09-19 12:29:00) [5]У меня было такое - побороть не удалось, но и разбирался я не сильно. Просто ушел от решения с модальными диалогами. А в другом случае прятал главную форму.
Defunct (2005-09-19 10:01:00) [6]Само по себе не может такое появляться...
DimDim (2005-09-18 13:19:00) [7]Чаво??? Я единственный, кто видел что модальные окна в XP "прячутся" за основные???
Поясняю: при этом фокус остается на модальном окне. Соответственно главное окно невозможно отодвинуть, пока фокус находится на модальном, а его не видно! Пользователи начинают с этим бороться перезагрузкой Windows (мало кто знает три волшебные клавиши).
Пытаюсь с этим бороться уже месяца 4.
Небольшое улучшение было после того, как в теле OnActivate понаставил Application.ProcessMessages;. Но все равно периодически вылазит такая дрянь.
DimDim (2005-09-17 20:02:00) [8]Так в том-то и прикол, что программа одинаково себя ведет со свойствами окон fsStayOnTop и fsNormal.
Может из-за того, что модальные окна создаются динамически?
Запускаю их:
Application.CreateForm(TFormOPEN1,FormOPEN1);
FormOPEN1.ShowModal;
FormOPEN1.Free;
Defunct (2005-09-17 19:51:00) [9]ставить свойсво FormStyle = fsStayOnTop у диалогов.