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