Советы по Delphi

         

Максимальная ширина формы


...могло это случится из-за компонентов, расположенных на вашей форме? Попробуйте создать _новую_ форму без компонентов и установить ей ширину, равную 130, и посмотреть что будет (сохранится ли проблема?).

Вы можете преодолеть ограничение Windows, которое устанавливает минимальную ширину по-умолчанию. Для этого необходимо самим обработать системное сообщение wm_GetMinMaxInfo, которое позволяет задать минимальную ширину окна. Способ работы с этим сообщением состоит в передаче указателя на структуру (в lParam). Вы можете установить максимальный размер окна, размер максимально раскрытого окна, и позицию при его максимизации. Вот пример того, как можно изменить минимальную ширину:

Добавьте следующую строку к частным декларациям вашего наследника от TForm:

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

а вот реализация:

    procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
Msg.MinMaxInfo^.ptMinTrackSize.x := 130; end;

Имейте в виду, что минимальная ширина окна в Windows 95 отличается от аналогичного значения в Windows 3.1. Поскольку Win95 добавляет новые кнопки в область заголовка окна (в случае, если вы определили их использование, например, кнопки Minimize или Maximize), то минимальная ширина немного больше, чем в Windows 3.1. Также следует принять во внимание разные размеры шрифта заголовка. [001752]



Содержание раздела