5

非常に単純だと思いますが、フォームを特定の画面に最大化できるようにする必要があります。Delphi固有の情報が見つからないようです。

その後のアプリケーションのロードでフォームの位置を覚えています。ただし、位置を復元してから呼び出すWindowState := wsMaximizedと、フォームが別の画面に移動します! (その画面には他のフォームも表示されています-「アクティブな画面」に最大化されているように見えます)

だから私は次のような関数が必要です:

procedure Maximize(const aScreenIndex : Integer);
begin
 if aScreenIndex < Screen.MonitorCount then
   //Maximize to that screen
end;
4

2 に答える 2

5

メッセージを傍受し、必要に応じてその構造WM_GETMINMAXINFO内の座標を調整します。MINMAXINFO

于 2011-06-16T07:22:18.090 に答える
1

Form.FormShowまたはMaximizeプロシージャで、デザイン時にForm.PositionをpoDesignedに設定します。

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;
于 2011-06-16T09:05:24.990 に答える