Delphi实现动态修改显示器分辨率

2016-02-19 21:28 38 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享Delphi实现动态修改显示器分辨率,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

  本实例演示如何在程序中动态修改屏幕的分辨率,并且不需要重新启动计算机就可以生效。

  向窗体上添加两个Button控件,设计完成的主界面如图1所示。

图1 主界面

  在程序中添加一个自定义函数DynamicResolution,它有两个参数,分别对应于水平和垂直方向的分辨率,并且该函数有一个BOOL类型的返回值,通过判断返回值可以判断DynamicResolution函数是否正确执行。DynamicResolution函数代码如下:

  function TfrmMain.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;

  在程序运行过程中,通过单击窗体上的两个按钮“640*480”、“800*600”来调用DynamicResolution(640,480)或DynamicResolution(800,600)修改分辨率。

  程序首先通过EnumDisplaySettings来取得当前屏幕的分辨率,把它存储在变量lpDevMode中,然后把lpDevMode设置为新的分辨率,最后通过ChangeDisplaySettings函数完成动态修改显示器分辨率的具体操作。

  程序代码如下:

  unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;
type
 TfrmMain = class(TForm)
 btn800600: TButton;
 btn640480: TButton;
 procedure btn640480Click(Sender: TObject);
 procedure btn800600Click(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
 function DynamicResolution(X, Y: word): BOOL;
 end;
var
 frmMain: TfrmMain;
 implementation
 {$R *.dfm}
 function TfrmMain.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 TfrmMain.btn640480Click(Sender: TObject);
begin
 if DynamicResolution(640, 480) then
 begin
  ShowMessage(’现在的分辨率是640*480’);
 end;
end;
procedure TfrmMain.btn800600Click(Sender: TObject);
begin
 if DynamicResolution(800, 600) then
 begin
  ShowMessage(’现在的分辨率是800*600’);
 end;
end;
end.

  保存文件,然后按F9键运行程序,程序运行的初始画面如图2所示。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  在程序运行过程中,用户可以通过单击“800*600”和“640*480”按钮把屏幕分辨率分别更改为“800*600”和“640*480”,如图3所示。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

图2 程序运行的初始画面

 

图3 程序运行结果

来源:https://www.tulaoshi.com/n/20160219/1626255.html

延伸阅读
《德军总部》进入游戏黑屏或是提示超出显示器分辨率解决! 1) 遇到这种情况,先按一下esc键,再按alt+f4退出到桌面! 2) 打开C:\Documents and Settings\Administrator\Local Settings\Application Data\id Software\WolfSP\base 3) 双击,选择记事本打开其中的wolf.cfg文件! 4) 搜索 seta r_displayRefresh 5) 找到后,把引号中间的数值改为...
猩猩助手如何修改分辨率   大家都知道猩猩助手是一个非常好用的安卓模拟器,那么猩猩助手如何修改分辨率呢,本文就给大家用一张图来解释一下如何设置猩猩助手分辨率
标签: 电脑入门
在Linux系统中,因游戏配置要求或其他原因而需要修改桌面分辨率,但突然就找不到修改Linux桌面分辨率的地方,下面图老师小编就给大家介绍下如何修改Linux桌面分辨率吧。 今天我开始安装centos5.4版本的linux,桌面使用G。 桌面---系统---管理----显示里面分辨率只有两个选项800*600 640*480 我使用的是PHILIPS17纯平,需要调整...
靠谱助手分辨率修改教程   操作方法 1、下载和安装靠谱助手 2、点击靠谱助手模拟器设置 3.自定义输入分辨率,如果你不知道输入多少你可以选择靠谱助手推荐的分辨率。 4.修改成功,重启模拟器即可浏览效果! 5.效果一览,800x600
标签: Web开发
1、首先你需要到 www.macromedia.com 网站上去下载一个名为CenterLayers 2.3的插件(下载前得先在网站上注册),大小为8KB(你也可以通过我们网站的留言本索要该插件!)。然后用Exention Manager将插件装上。重新启动Dreamweaver使插件起作用,设定页面中需要定位的层为Layerl,再新建一个透明层,设为Layer2并使其移至窗口中央,将代表Laye...

经验教程

250

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部