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

Предотвращение изменения вертикальных размеров окна

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

Предотвращение изменения вертикальных размеров окна

Вы должны перехватывать сообщение WM_GETMINMAXINFO:

Поместите это в декларацию класса формы:


procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
message WM_GETMINMAXINFO; 

и в секции реализации:


procedure TMyForm.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
  { --------------------------------------------------------------------}
  { Поместите ваши величины вместо                                      }
  { MIN_WIDTH, MIN_HEIGHT, MAX_WIDTH, MAX_HEIGHT                        }
  {                                                                     }
  { Для возможности только горизонтального изменение размера,           }
  { поместите значение свойства формы 'Height' в MIN_HEIGHT, MAX_HEIGHT }
  { --------------------------------------------------------------------}
  Msg.MinMaxInfo^.ptMinTrackSize := Point(MIN_WIDTH, MIN_HEIGHT);
  Msg.MinMaxInfo^.ptMaxTrackSize := Point(MAX_WIDTH, MAX_HEIGHT);
  inherited;
end;

Код-снippet написан на Delphi и используется для предотвращения изменения вертикального размера формы (окна) путем установки минимальных и максимальных размеров трека окна.

Работает следующим образом:

  1. Сообщение WMGetMinMaxInfo обрабатывается классом TMyForm, который является потомком класса TForm.
  2. Когда получается сообщение WMGetMinMaxInfo, код устанавливает минимальный и максимальный размеры трека в полях Msg.MinMaxInfo.ptMinTrackSize и Msg.MinMaxInfo.ptMaxTrackSize соответственно.
  3. Поле ptMinTrackSize specifies the smallest size a window can be resized to, а поле ptMaxTrackSize specifies the largest size a window can be resized to.

В этом примере код устанавливает минимальный размер трека в (MIN_WIDTH, MIN_HEIGHT) и максимальный размер трека в (MAX_WIDTH, MAX_HEIGHT). Это означает, что форма не позволит изменить ее ширину ниже MIN_WIDTH или высоту ниже MIN_HEIGHT, а также не выше MAX_WIDTH или MAX_HEIGHT.

Стatement inherited; на конце процедуры используется для вызова реализации родительского класса этого метода, который необходим при переопределении виртуального метода.

Пример использования кода:

procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
  // Установка минимальных и максимальных размеров трека для формы.
  Msg.MinMaxInfo^.ptMinTrackSize := Point(100, 200); // Минимальный размер - 100x200 пикселей
  Msg.MinMaxInfo^.ptMaxTrackSize := Point(500, 400); // Максимальный размер - 500x400 пикселей

  inherited;
end;

В этом примере форма не позволит изменить ее ширину ниже 100 пикселей или высоту ниже 200 пикселей, а также не выше 500 пикселей или 400 пикселей.

Предотвращение изменения вертикальных размеров окна в приложении на Delphi достигается с помощью перехвата сообщения WM_GETMINMAXINFO и установки минимального и максимального трека размера окна с учетом запрещенных изменений в высоте.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 00:46:05/0.0030639171600342/0