掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ChangeDisplaySettingsでフルスクリーンにするには? (ID:45273)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
忘れてたけど、後から見る人がいるかもしれないからコード上げておきます。 var Form1: TForm1; aa: DEVMODE; bb: DEVMODE; procedure TForm1.Button1Click(Sender: TObject); begin //Formの枠を消す Form1.BorderStyle := bsNone; //フルスクリーンモードにする Form1.WindowState := wsFullScreen; //大きさを一応設定 Form1.Width := 40 * 16; Form1.Height := 30 * 16; //なぜかもう一回やる Form1.BorderStyle := bsNone; Form1.WindowState := wsFullScreen; Form1.Width := 40 * 16; Form1.Height := 30 * 16; //設定変更 ChangeDisplaySettings(bb,CDS_FULLSCREEN); end; procedure TForm1.FormCreate(Sender: TObject); begin //Formの長さ Form1.Width := 40 * 16; Form1.Height := 30 * 16; //ディスプレイ情報を取得する FULL_SCREEN; end; procedure TForm1.FULL_SCREEN; var i: Cardinal; dev: Array[0..50] of DEVMODE; begin // ディスプレイのレジストリ内の設定をロード EnumDisplaySettings(nil,ENUM_CURRENT_SETTINGS,bb); for i := 1 to 50 do begin EnumDisplaySettings(nil,ENUM_CURRENT_SETTINGS,dev[i]); end; //ループ準備 i := 0; //ループ repeat //失敗しても成功しても50個の設定を読む //MSDNがサイズをどうこうしろといってた。意味は知らない。 dev[i].dmSize := SizeOf(dev[i]); //設定の取得 EnumDisplaySettings(nil,i,dev[i]); //画面比率。 4:3にしたいので、取得したものが4:3になっているか調べる if (dev[i].dmPelsHeight / 3) = (dev[i].dmPelsWidth / 4) then begin //取得したモードが、32bitカラー、bbに格納されているものより縦横が小さい、640*480以上のときはbbに代入 if (bb.dmPelsWidth > dev[i].dmPelsWidth)and(bb.dmPelsHeight > dev[i].dmPelsHeight)and (dev[i].dmBitsPerPel = 32)and(dev[i].dmPelsWidth >= 640)and(dev[i].dmPelsHeight >= 480) then begin bb := dev[i]; end; end; i += 1; //ループ。インデックス番号 until (i >= 50); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.