線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3118
推到 Plurk!
推到 Facebook!

改變螢幕解析度,如:800*600->640*480

 
yps
一般會員


發表:9
回覆:3
積分:7
註冊:2002-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-03-18 23:29:04 IP:61.216.xxx.xxx 未訂閱
加入一個FUNCTION如下:
============================================================
  function SetScreenResolution(Width, Height: integer): Longint; 
  var 
    DeviceMode: TDeviceMode; 
  begin 
    with DeviceMode do begin 
      dmSize := SizeOf(TDeviceMode); 
      dmPelsWidth := Width; 
      dmPelsHeight := Height; 
      dmFields := DM_PELSWIDTH or DM_PELSHEIGHT; 
    end; 
    Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY); 
  end; 
===============================================================
並在FORM1上加入BUTTON1、BUTTON2
先宣告變數
  var 
    OldWidth, OldHeight: integer; 
在button1之click事件上上加入
======================================
procedure TForm1.Button1Click(Sender: TObject); 
  begin 
    OldWidth := GetSystemMetrics(SM_CXSCREEN); 
    OldHeight := GetSystemMetrics(SM_CYSCREEN); 
    SetScreenResolution(640, 480); 
  end; 
=====================================    在button2之click事件上加入
================================
  procedure TForm1.Button2Click(Sender: TObject); 
  begin 
    SetScreenResolution(OldWidth, OldHeight); 
  end;
================================
此範例是先將原本之解析度存到變數中,按下按鈕一會先將解析度
變為640*480,按下按鈕二會將變數值回存,變為原本之解析度    以上報告完畢!    --------------------
DELPHI ROCK & ROLL
--------------------
優良文章!
------
--------------------
DELPHI ROCK & ROLL
--------------------
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-03-19 00:04:28 IP:192.168.xxx.xxx 未訂閱
非常感謝熱心的網友yps提供文章,謝謝您! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-18 21:45:26 IP:192.168.xxx.xxx 未訂閱
我也來一段類似的寫法: 在windows NT/2000 都可以喔!
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    function DynamicResolution(X, Y: word): BOOL;
var lpDevMode: TDeviceMode;
begin
  Result := EnumDisplaySettings(nil, 0, lpDevMode);
  if Result then
  begin
    lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
    lpDevMode.dmPelsWidth := X;
    lpDevMode.dmPelsHeight := Y;
    Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
  end;
end;    procedure TForm1.Button1Click(Sender: Tobject);
begin
  if DynamicResolution(640, 480) then
    ShowMessage('Now is 640*480');
end;    procedure TForm1.Button2Click(Sender: Tobject);
begin
  if DynamicResolution(800, 600) then
    ShowMessage('Now is 800*600');
end;
end.
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-03-29 20:08:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!