画面の処理

提供: RAD Studio
移動先: 案内検索

アプリケーションの動作の制御 への移動


プロジェクトを作成すると、TScreen 型のグローバル変数 Screen が作成されます。 Screen は、ユーザーのアプリケーションが実行されているスクリーンの状態をカプセル化します。 Screen によって実行される一般的なタスクには次のものがあります:

VCL アプリケーションが複数のモニタで動作する場合、複数モニタ上のアプリケーション ユーザー インターフェイスのレイアウトは、VCL によって効果的に管理されます。たとえば、メニューやダイアログ ボックスやその他のポップアップ コントロールは、親フォームと同じモニタ上で開きます。Screen 変数を使用すると、モニタとそのサイズのリストを取得することができます。Monitors プロパティを使用するとデスクトップを構成するすべてのモニタにアクセスでき、MonitorCount はモニタの数を返します。すべての座標は主モニタからの相対座標です。たとえば、以下のような情報を取得することができます。

procedure TForm2.Button1Click(Sender: TObject);
var
  I : integer;
  ScreenCount : integer;
  P: TPoint;
begin
  Memo1.Clear;
  ScreenCount := Screen.MonitorCount;
  P := Mouse.CursorPos;
  Memo1.Lines.Add('Monitor number: ' + IntToStr(ScreenCount) );
  for I := 0 to ScreenCount-1 do begin
    Memo1.Lines.Add('Screen.Width: ' + IntToStr(Screen.Width));
    Memo1.Lines.Add('Monitor: '+IntToStr(Screen.Monitors[I].MonitorNum) );
    Memo1.Lines.Add('Top: '+IntToStr(Screen.Monitors[I].Top) );
    Memo1.Lines.Add('Left: '+IntToStr(Screen.Monitors[I].Left) );
    Memo1.Lines.Add('Width: '+IntToStr(Screen.Monitors[I].Width) );
    Memo1.Lines.Add('Height: '+IntToStr(Screen.Monitors[I].Height) );
    Memo1.Lines.Add('MonitorFromRect(mdNearest): '
      + IntToStr( (Screen.MonitorFromRect(
           TRect.Create(P,100,100), mdNearest)).MonitorNum) );
    Memo1.Lines.Add( 'Mouse.CursorPos: ' + IntToStr(P.X) 
      + ' ' + IntToStr(P.Y) );
  end;
end;

関連項目