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

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

Вам необходимо обработать из вашей формы сообщение 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;
 
« Предыдущая статья   Следующая статья »