Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Временно запретить форме перерисовываться

Delphi , Программа и Интерфейс , Формы

Временно запретить форме перерисовываться

Автор: Danny Thorpe (Borlandeer)

Danny Thorpe (Borlandeer) посоветовал мне способ избежать использования LockWindowUpdate и, соответственно, избежать излишнего мерцания экрана. Во многих случаях более эффективным способом будет посылка сообщения WM_SETREDRAW, позволяющая блокировать/разблокировать форму, не затрагивая при этом остальные окна.

Так, чтобы временно запретить форме перерисовываться, необходим следующий код:


Perform(WM_SETREDRAW, 0, 0);

... и, чтобы возвратиться к нормальному состоянию:


Perform(WM_SETREDRAW, 1, 0);
Refresh;

Программный код на Delphi предназначен для временного прекращения перерисовки формы. Автор кода, Дэнни Торп (Borlandeer), рекомендует использовать этот подход вместо LockWindowUpdate, который может вызывать мерцание на экране.

Сообщение WM_SETREDRAW отправляется окну для уведомления о необходимости перерисовки его клиентской области. Отправляя это сообщение с аргументом 0, форма временно остановит свою перерисовку. Для возврата к нормальному состоянию необходимо отправить это сообщение снова с аргументом 1 и затем вызвать метод Refresh.

Вот код:

Perform(WM_SETREDRAW, 0, 0); // Prevent form from being redrawn

// ... some operations ...

Perform(WM_SETREDRAW, 1, 0); // Allow form to be redrawn again
Refresh; // Force the form to be refreshed

Этот подход более эффективен, потому что он не блокирует обновление клиентских областей других окон.

Автор Danny Thorpe предложил использовать функцию WM_SETREDRAW для временного запрета перерисовки формы, что позволяет блокировать или разблокировать форму без влияния на другие окна.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Формы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:42:36/0.0026662349700928/0