Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2010, 16:14   #1
tvvwild
Новичок
Джуниор
 
Регистрация: 23.07.2010
Сообщений: 2
По умолчанию MDI Приложение

Добрый день.
Столкнулся с неправильным поведением при создании форм в Delphi 7.
Возможно это поведение и есть правильное, но оно создает неудобство.

Суть в следующем имеется MDI приложение. Задача заключается в следующем, все дочерние формы (далее просто формы) должны при открытии быть в развернутом виде, те WindowState = wsMaximized
вот тут возникает парадокс. когда мы создаем форму, то она создается вначале какбы в состоянии wsNormal,а потом переходит в wsMaximized, и при этом все открытые ранее формы также совершают переход wsMaximized->wsNormal->wsMaximized, получается этакое мерцание. На шустрых машинах это не сильно заметно, а на средних надоедает.
Как можно сделать так что бы не было этого мерцания?
Заранее спасибо
Нашел один способ, ставить код создания формы в обрамление LockWindowUpdate(ClientHandle);
...
LockWindowUpdate(0);

Но может быть есть еще способы?

Последний раз редактировалось tvvwild; 23.07.2010 в 16:49.
tvvwild вне форума Ответить с цитированием
Старый 23.07.2010, 16:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
то она создается вначале с wsNormal и wsMaximized
Не может форма одновременно быть в обоих этих ситуациях. Ты что-то путаешь.
Цитата:
и все открытые ранее формы также совершают переход wsMaximized->wsNormal->wsMaximized.
Как открытые? Разве могут дочерние формы быть уже открыты до того как главная создастся?

P.S. только что проверил - выставил у себя всем дочерним формам wsMaximized. Никакого мерцания не увидел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2010, 16:47   #3
tvvwild
Новичок
Джуниор
 
Регистрация: 23.07.2010
Сообщений: 2
По умолчанию

когда у тебя есть уже открытые дочернии формы и они находяться в wsMaximized и ты создаешь новое не происходит на мнговение что они становяться вначале wsNormal и потом опять wsMaximized
у меня происходит именно такое поведение.

Опишу более подробно:
когда я вызываю у формы Create то он создаеться не развернутом виде а в нормальном и далее происходит переход в развернутый. На экране видно как она "плавно" (в 3 шага) переходит в развернутый вид. Этакая анимация.
Мне необходимо что бы сразу же была в развернутом.
Быть может это какие-то настройки ОС?

Все вопрос исчерпан это проблема была именно в ОС, если убрать пункт в параметрах быстродействия "Анимация при сворачивании и развертывании", то все порядке.
Спасибо за ответы.
Как говориться а ларчик просто открывался

Последний раз редактировалось tvvwild; 23.07.2010 в 17:00.
tvvwild вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает Mutex (MDI приложение) Terazoid Win Api 1 26.04.2010 16:53
Передача параметра с MDI родителя в MDI child через DLL ByXalkin Общие вопросы Delphi 0 15.12.2009 17:21
mdi приложение Михаил Юрьевич Общие вопросы Delphi 1 21.09.2009 01:01
MDI-приложение Технолог Общие вопросы Delphi 6 02.05.2008 20:10
MDI приложение Arsgun Общие вопросы Delphi 4 29.05.2007 12:36