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 и используется для предотвращения изменения вертикального размера формы (окна) путем установки минимальных и максимальных размеров трека окна.
Работает следующим образом:
Сообщение WMGetMinMaxInfo обрабатывается классом TMyForm, который является потомком класса TForm.
Когда получается сообщение WMGetMinMaxInfo, код устанавливает минимальный и максимальный размеры трека в полях Msg.MinMaxInfo.ptMinTrackSize и Msg.MinMaxInfo.ptMaxTrackSize соответственно.
Поле 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; на конце процедуры используется для вызова реализации родительского класса этого метода, который необходим при переопределении виртуального метода.
Пример использования кода:
procedureTForm1.WMGetMinMaxInfo(varMsg: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
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.