Обработка запроса на максимальное раскрытие окна

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Мне необходимо иметь в приложении форму, раскрывающуюся при нажатии на кнопку «Открыть на весь экран» только в половину экрана, а не на полный экран.

Вам необходимо обработать из вашей формы сообщение WM_GETMINMAXINFO.

Например, добавьте следующее объявление в защищенную (protected) секцию вашей формы (interface):

procedure _WM_GETMINMAXINFO( var mmInfo : TWMGETMINMAXINFO );

message wm_GetMinMaxInfo;

и создайте обработчик этого сообщения следующим образом (TForm1, естественно, имя вашей формы):

procedure TForm1._WM_GETMINMAXINFO(var mmInfo: TWMGETMINMAXINFO);

begin

// устанавливаем позицию и размер вашей формы

// при ее максимальном раскрытии:

with mmInfo.minmaxinfo^ do

begin

ptmaxposition.x := Screen.Width div 4;

ptmaxposition.y := Screen.Height div 4;

ptmaxsize.x := Screen.Width div 2;

ptmaxsize.y := Screen.Height div 2;

end;

end;

{/codecitation}

Добавить комментарий