Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как отключить анимацию разворачивания для окон?


Автор: Bose 23.11.2006, 20:09
При максимизации Mdi формы с большим количеством контролов, по умолчанию происходит следующая нехорошая последовательность действий:
1) сначала, на долю секунды окно рисуется в нормальном виде(немаксимизировано)
2) потом происходит анимированная максимизация окны(если включено в эффектах Windows)
3) И только после этого, окно прорисовываестя в максимизированном виде.

Вопрос таков: можно ли избавиться от первого и второго действия?

Насколько я понял, это глюк не столько Дельфей, сколько Винды в целом. Посему вопрос сюда.

Автор: dumb 2.12.2006, 08:01
http://forum.vingrad.ru/topic-115043/index.html
+
SystemParametersInfo(SPI_SETANIMATION...

Автор: Bose 2.12.2006, 17:21
dumb спасибо, я попробовал твой вариант. Это не совсем то, что нужно.

нашёл http://www.madio.net/bbs/dispbbs.asp?boardid=48&id=2714&star=1&page=15 подробное описание проблемы и вариант решения.

Немного модицировал, заменив 
Код

LockWindowUpdate(clientHandle); 

на 
Код

LockWindowUpdate(Application.MainForm.Handle) ;


В результате:
в конструкторе формы прописал вызов
Код

LockWindowUpdate(Application.MainForm.Handle) ;


а в методе формы Activate прописал снятие блокировки:
Код

LockWindowUpdate(0) ;


Вроде пока работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)