понедельник, 21 сентября 2015 г.

Блокировка перерисовки окна на время обновления его дочерних окон

Открыл для себя сообщение WM_SETREDRAW. Позволяет на какое-то время отключить перерисовку контрола (окна), тем самым избавить пользователя от лишних мерцаний, эффекта шлейфа и тому подобного. Применил в своём сплиттере, теперь при изменении размеров – красота. Сравните две анимашки (т.к. это gif – сохранил в оттенках серого, иначе появляются цветовые артефакты).

Delphi Notes Splitter обновлён (v1.09)

По этой ссылке можно перейти на страницу с заметкой о компоненте и ссылкой на исходник.
Версия 1.07.
Версия 1.08.

В новой версии:

(*) Метод UpdateControlSize обрамлён сообщением WM_SETREDRAW для плавного изменения размеров компонент, окружающих сплиттер

Ссылка для скачивания: Исходник компонента + исходник демо приложения + скомпилированное демо (zip-архив 216 К)
В следующей заметке расскажу чуть более подробнее о WM_SETREDRAW и там будет наглядный пример.

.

.