Delphi - максимизировать форму для определенного экрана - PullRequest
5 голосов
/ 16 июня 2011

Я думаю, довольно просто, но мне нужно иметь возможность максимизировать форму до определенного экрана.Кажется, что не могу найти какую-то специфическую информацию для Delphi.

Я помню положение форм при последующих загрузках приложения.Однако, когда я восстановлю позицию, а затем вызову WindowState := wsMaximized, форма переместится на другой экран!(у меня есть другие формы, также видимые на этом экране - кажется, что его максимизируется до «активного экрана»)

Поэтому мне нужна функция, подобная этой:

Ответы [ 2 ]

5 голосов
/ 16 июня 2011

Перехватите сообщение WM_GETMINMAXINFO и при необходимости отрегулируйте координаты внутри его структуры MINMAXINFO.

1 голос
/ 16 июня 2011

Установить Form.Position для poDesigned во время разработки В Form.FormShow или вашей процедуре максимизации:

procedure Maximize(const aScreenIndex : Integer);
begin
  if aScreenIndex < Screen.MonitorCount then
  begin 
   //Maximize to that screen
    Myform.Left := screen.Monitors[aScreenIndex ].Left;
    Myform.WindowState := wsMaximized;
  end; 
end;
...