フルスクリーンモードにするには?

解決


ヘイポイ  2003-06-29 19:57:43  No: 3917

こんにちは。
Delphi初心者です。
フルスクリーンにするには、
どうすればよいでしょうか?


たかみちえ  URL  2003-06-29 20:42:33  No: 3918

なにをですか…?


ヘイポイ  2003-06-29 23:08:05  No: 3919

すみません。
Formをフルスクリーンにして、
BITBLTで絵を貼り付けるのですが。


たかみちえ  URL  2003-06-29 23:26:37  No: 3920

BorderStyleをbsNoneにして、画面をScreenオブジェクトの値に合わせれば、
とりあえずできそうな気がします。
それではだめでしょうか?


ヘイポイ  2003-06-29 23:38:51  No: 3921

返事ありがとうございました。


名前なし  2003-06-30 02:38:23  No: 3922

ついでに、画面の解像度の変更するのもいいかもしれません。

以下コピペ

var
  ScrW: Integer;  // Screen Width
  ScrH: Integer;  // Screen Height
  ScrC: Integer;  // Screen Color (Bit/Pixel)
  RRate: Integer; // Refresh Rate
  ChgFlag: Boolean;  // 変更フラグ

procedure TForm1.FormCreate(Sender: TObject);
var
  hDC: THandle;
  OSVer: TOSVersionInfo;  // OSバージョン情報
begin
  // OSバージョンチェック
  OSVer.dwOSVersionInfoSize := Sizeof(TOSVersionInfo);
  GetVersionEx(OSVer);

  // 画面情報を得る
  hDC := GetDC( 0 );
  ScrW := GetDeviceCaps( hDC, HORZRES );
  ScrH := GetDeviceCaps( hDC, VERTRES );
  ScrC := GetDeviceCaps( hDC, BITSPIXEL ) *
          GetDeviceCaps( hDC, PLANES );
  if OSVer.dwPlatformId = VER_PLATFORM_WIN32_NT then
    // NTならば現在のリフレッシュレートを得る
    RRate := GetDeviceCaps( hDC, VREFRESH )
  else
    RRate := 1;  // default refresh rate
  ReleaseDC( 0, hDC );

  ChgFlag := False;  // 変更なし
end;

(* 640 x 480 モード *)
procedure TForm1.Button1Click(Sender: TObject);
var
  DevMode: TDeviceModeA;
begin
  DevMode.dmSize := Sizeof(TDeviceModeA);
  DevMode.dmBitsPerPel := ScrC;
  DevMode.dmPelsWidth  := 640;
  DevMode.dmPelsHeight := 480;
  DevMode.dmDisplayFrequency := 1;  // 面倒なのでdefaultを採用
  DevMode.dmFields := DM_PELSWIDTH or
                      DM_PELSHEIGHT or
                      DM_BITSPERPEL or
                      DM_DISPLAYFREQUENCY;
  ChangeDisplaySettings(DevMode,0);
  ChgFlag := True;  // 変更あり
end;

(* 元のモードに戻す *)
procedure TForm1.Button2Click(Sender: TObject);
var
  DevMode: TDeviceModeA;
begin
  if ChgFlag = True then
  begin
    DevMode.dmSize := Sizeof(TDeviceModeA);
    DevMode.dmBitsPerPel := ScrC;
    DevMode.dmPelsWidth  := ScrW;
    DevMode.dmPelsHeight := ScrH;
    DevMode.dmDisplayFrequency := RRate;
    DevMode.dmFields := DM_PELSWIDTH or
                        DM_PELSHEIGHT or
                        DM_BITSPERPEL or
                        DM_DISPLAYFREQUENCY;
    ChangeDisplaySettings(DevMode,0);
  end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  DevMode: TDeviceModeA;
begin
  if ChgFlag = True then
  begin
    DevMode.dmSize := Sizeof(TDeviceModeA);
    DevMode.dmBitsPerPel := ScrC;
    DevMode.dmPelsWidth  := ScrW;
    DevMode.dmPelsHeight := ScrH;
    DevMode.dmDisplayFrequency := RRate;
    DevMode.dmFields := DM_PELSWIDTH or
                        DM_PELSHEIGHT or
                        DM_BITSPERPEL or
                        DM_DISPLAYFREQUENCY;
    ChangeDisplaySettings(DevMode,0);
  end;
end;


ヘイポイ  2003-07-02 04:55:40  No: 3923

解決しました。


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

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






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