改變螢幕解析度,如:800*600->640*480 |
|
yps
一般會員 ![]() ![]() 發表:9 回覆:3 積分:7 註冊:2002-03-18 發送簡訊給我 |
加入一個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 發送簡訊給我 |
|
領航天使
站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
我也來一段類似的寫法:
在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討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |