デュアルモニターを使用しています。
水平スパン(VGAドライバによって呼び方はちがうかも・・・)だと
画面サイズを 1280 x 1024に設定すると
2560 x 1024 の画面を左右に分割して表示されます。(左:プライマリ)
垂直スパンだと
画面サイズを 1280 x 1024に設定すると
1280 x 2048 の画面を上下に分割して表示されます。(上:プライマリ)
さて、
自作アプリをセカンダリモニターに最大で表示させたいのですが
どのようにすればよいのでしょうか?
全体のサイズとプライマリのみのサイズを取得することは
できないのでしょうか?
セカンダリーモニターで
最大化させる方法はわからないのですが
サイズを求める方法はわかります。
すべての領域を合わせた仮想デスクトップは
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とか、
そういうので、各ディスプレイの情報を取得することができますよ。
過去ログにもけっこうありますが・・・
他にもしられざる
Screen.Monitors[]
オブジェクトがあり、個々のモニターのプロパティに
アクセスできます。
Screenオブジェクトは、通常、暗黙のうちに
インスタンスが作成されいつでも利用できます。
(Delphi にエディタに入力して
CTRL + クリックで詳細を確認してみるとよいでしょう)
(Mobile2goのnViewなどでは
デュアルでも1つのモニタとして扱われるためうまくいきません)
かぶった(汗)
ツイート | ![]() |