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

Заблокировать перемещение формы

Delphi , Программа и Интерфейс , Размеры и Положение

Заблокировать перемещение формы

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{....}

   private
     procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;

      {....}

 procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
 begin
   inherited;

   with Message do
   begin
     if Result = HTCAPTION then
       Result := HTNOWHERE;
   end;
 end;

Here is a translation of the text into Russian:

Код на Delphi, который пытается предотвратить пользователя от изменения размера или перемещения формы, блокируя сообщение HTCAPTION, которое обычно используется для захвата событий мыши над заголовками окон.

Процедура WMNCHitTest - обработчик сообщения WM_NCHITTEST. Это сообщение отправляется окну, когда пользователь кликнул или переместил курсор мыши над ним. Процедура вызывается с записью TWMNCHitTest как параметром, которая содержит информацию о событии мыши.

Код проверяет, является ли результат теста HTCAPTION равным HTCAPTION. Если это так, то он изменяет результат на HTNOWHERE, эффективно предотвращая пользовательский доступ к заголовку.

Обзор кода:

  1. Стatement inherited; вызывает реализацию родительского класса процедуры WMNCHitTest, которая необходима, потому что система обработки сообщений Delphi работает по принципу передачи сообщений вверх по цепочке наследия до обнаружения обработчика.
  2. Блок with Message do создает временную переменную Message, которая ссылается на оригинальный рекорд TWMNCHitTest, переданный процедуре.
  3. Код проверяет, является ли результат теста HTCAPTION равным HTCAPTION. Это будет истинно, если пользователь кликнул на заголовок.
  4. Если результат действительно равен HTCAPTION, то он изменяет результат на HTNOWHERE. Это эффективно предотвращает доступ пользователя к заголовку, таким образом, форма становится "неподвижной" и "неизменяемой".

В целом, этот код достигает своей цели, блокируя доступ пользователя к заголовку формы, тем самым делая форму "неподвижной" и "неизменяемой".

В статье описывается способ блокировки перемещения формы в программе на языке Pascal с использованием процедуры WMNCHitTest и изменения результата сообщения.


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

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




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


:: Главная :: Размеры и Положение ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:45:30/0.0058071613311768/1