各位大侠在代码如何改变显示器的分辨率
解决方案 »
- up有分!!关于memo控件与文件打印!
- 给steveli放分2!
- ListBox中显示了数据库中某一字段的内容,删除ListBox中的项目的同时怎样删除数据库中的同一记录
- 请帮忙参考一下书
- 一个关于音乐文件的问题 不是高手不要来 送高分!!!
- 一个菜问题
- 一个post的问题!急啊!!请高手指教啊!!
- 怎样从Form1中Show出From2,能不能详细点!!我是新手,我试过,但不行,好像还要在什么地方申明什么东东?
- 怎样获取局域网内所有机器的名字及IP地址?
- 操作Excel
- 怎么使用户按照某种格式在EDIT中输入数据,如1/2或2-1。就是说尽可能方便的用户的输入,还防止用户输入的数据是别的格式。
- 我设了断点,怎么没用啊?
var
lpDevMode :TDEVICEMODe ;
begin
result := EnumDisplaySettings(Nil ,0 ,lpDEVMode) ;
if result then
begin
lpDevmode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT ;
lpdevmode.dmPelsWidth := width ;
lpdevmode.dmPelsHeight := height ;
result := ChangeDisplaySettings(lpdevmode ,CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL ;
end;
end;
var DevMode:TDeviceMode;
Index:Integer;
OldX,OldY:Integer;
begin
OldX:=GetSystemMetrics(SM_CXSCREEN); //分辨率宽
OldY:=GetSystemMetrics(SM_CYSCREEN); //分辨率高
Index := 0;
while EnumDisplaySettings(nil, Index, DevMode) do begin
Inc(Index);
with DevMode do begin
if dmPelsWidth<>OldX then
Continue;
if dmPelsHeight<>OldY then
Continue;
if dmDisplayFrequency=0 then
ChangeDisplaySettings(DevMode,CDS_UPDATEREGISTRY);
if dmDisplayFrequency=Freq then
ChangeDisplaySettings(DevMode,CDS_UPDATEREGISTRY);
end;
end;
end;
procedure Tmainwinform.FormCreate(Sender: TObject);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
//用于在程序结束时把分辨率 改回原始状态
screenx := sx; //分辨率宽
screeny := sy; //分辨率高
if (sx <> 1024) and (sy <> 768) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := 1024;
DevMode.dmPelsHeight := 768;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
程序关闭时把分辨率修改为原来状态:
procedure Tmainwinform.FormClose(Sender: TObject;
var Action: TCloseAction);
var
sx, sy: Integer;
DevMode: TDeviceMode;
begin
sx := GetSystemMetrics(SM_CXSCREEN); //分辨率宽
sy := GetSystemMetrics(SM_CYSCREEN); //分辨率高
if (sx <> screenx) and (sy <> screeny) then
begin
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := screenx;
DevMode.dmPelsHeight := screeny;
ChangeDisplaySettings(DevMode,0); //设置新的显示参数
end;
actiON:=cafree;
end;//本代码编在1024×768,运行时自动将分辨率设为800×600,适应大小,参考一下吧。
procedure TForm1.FormCreate(Sender: TObject);
const
orignwidth = 800;
orignheight = 600;
var
devmode:tDevicemode;
begin
if screen.width<>orignwidth then
begin
if EnumDisplaySettings(nil,0,devmode) then
begin
devmode.dmfields:=dm_pelswidth OR dm_pelsheight
OR dm_DisplayFrequency;
devmode.dmpelswidth:=orignwidth; {宽度}
devmode.dmpelsheight:=orignheight;{高度}
devmode.dmDisplayFrequency:= 75; {刷新率}
ChangeDisplaySettings(devmode,0); {更改设置}
end;
end;
end;
function GetDispSet():integer;
var
DeviceMode: TDeviceMode;
begin
result:=0;
EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);
result:=DeviceMode.dmDisplayFrequency;
end;//改变系统显示刷新频率
function ChangeDispSet(iFrequency:integer):integer;
var
DeviceMode:TDeviceMode;
begin
result:=0;
EnumDisplaySettings(nil,Cardinal(-1), DeviceMode);
DeviceMode.dmDisplayFrequency:=Cardinal(iFrequency);
result:=ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY);
end;国庆了,早点结账吧。多带点星回家。。
var
devmode:tDevicemode;
begin
if screen.width<>orignwidth then
begin
if EnumDisplaySettings(nil,0,devmode) then
begin
devmode.dmfields:=dm_pelswidthORdm_pelsheight;
devmode.dmpelswidth:=orignwidth;{宽度}
devmode.dmpelsheight:=orignheight;{高度}
ChangeDisplaySettings(devmode,0);{更改设置}
end;
end;
end;