ディスプレイのサイズを取得するには?


マグル  2006-04-29 00:30:07  No: 21244

デュアルモニターを使用しています。

水平スパン(VGAドライバによって呼び方はちがうかも・・・)だと
画面サイズを 1280 x 1024に設定すると
2560 x 1024 の画面を左右に分割して表示されます。(左:プライマリ)
垂直スパンだと
画面サイズを 1280 x 1024に設定すると
1280 x 2048 の画面を上下に分割して表示されます。(上:プライマリ)

さて、
自作アプリをセカンダリモニターに最大で表示させたいのですが
どのようにすればよいのでしょうか?
全体のサイズとプライマリのみのサイズを取得することは
できないのでしょうか?


Fusa  2006-04-29 02:48:13  No: 21245

セカンダリーモニターで
最大化させる方法はわからないのですが

サイズを求める方法はわかります。
すべての領域を合わせた仮想デスクトップは
Screen.DesktopRect
など、Screen.Desktop* で求まります。
var
  Monitor: TMonitor;
begin
  for i := 1 to Screen.MonitorCount do
  begin
    Monitor := Screen.Monitors[i-1];

こんな風にすると、各モニターにアクセスでき
Monitor.Primary とか
Monitor.WorkareaRect
Monitor.Width/Heightとか、
そういうので、各ディスプレイの情報を取得することができますよ。


forever  2006-04-29 02:52:39  No: 21246

過去ログにもけっこうありますが・・・

他にもしられざる
Screen.Monitors[]
オブジェクトがあり、個々のモニターのプロパティに
アクセスできます。

Screenオブジェクトは、通常、暗黙のうちに
インスタンスが作成されいつでも利用できます。

(Delphi にエディタに入力して
CTRL + クリックで詳細を確認してみるとよいでしょう)

(Mobile2goのnViewなどでは
デュアルでも1つのモニタとして扱われるためうまくいきません)


forever  2006-04-29 02:53:17  No: 21247

かぶった(汗)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加