Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Модальное окно "прячется" за основную форму ???   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.103 c
5-1102363739
FunkyByte
2004-12-06 23:08
2005.10.09
Помогите найти (или сделать) StringGrid с необычными свойствами


1-1126785094
Новичок1
2005-09-15 15:51
2005.10.09
Здравствуйте , подскажите плз как изменить цвет кнопки


4-1123700179
Grief
2005-08-10 22:56
2005.10.09
Процессы


14-1127144234
Juice
2005-09-19 19:37
2005.10.09
Самые крутые db-aware ?


3-1124775527
Layner
2005-08-23 09:38
2005.10.09
Простой вопрос по RAISERROR