unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
old_width:integer; //用于保存为改变设置前的屏幕分辨率宽
old_height:integer; //用于保存为改变设置前的屏幕分辨率高
changeflag:boolean; //用于表明是否改变了屏幕设置
device_mode:tDevicemode; //用于表明设备模式
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
const
form_width=800;
form_height=600;
begin
{初始化改变标志}
changeflag:=false;
{判断分辨率,若不一致,则改变屏幕分辨率}
if (screen.Width<>form_width)or(screen.Height<>form_Height)then
if EnumDisplaySettings(nil,0,device_mode)then
begin
old_width:=GetSystemMetrics(SM_CXSCREEN);
old_height:=GetSystemMetrics(SM_CYSCREEN);
changeflag:=true;
{改变设置}
device_mode.dmFields:=dm_pelswidth OR dm_pelsheight;
device_mode.dmPelsWidth:=form_width; //给宽度赋值
device_mode.dmPelsHeight:=form_height; //给高度赋值
ChangeDisplaySettings(device_mode,0); //改变设置
{修改成功,显示信息}
showmessage('设置成功,设置为:'+inttostr(form_width)+'*'+inttostr(form_height)+';'+'原设置为:'+inttostr(old_width)+'*'+inttostr(old_height));
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
{判断是否改变,是,则恢复设置}
if changeflag=true then
if EnumDisplaySettings(nil,0,device_mode)then
begin
{恢复设置}
device_mode.dmFields:=dm_pelswidth OR dm_pelsheight;
device_mode.dmPelsWidth:=old_width; //赋原来设置的宽度
device_mode.dmPelsHeight:=old_height; //赋原来设置的高度
ChangeDisplaySettings(device_mode,0); //恢复设置
end;
showmessage('恢复设置成功,设置:'+inttostr(old_width)+'*'+inttostr(old_height));
close;
end;end.不知道这个方法怎么样?
我没有试过菜单
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
old_width:integer; //用于保存为改变设置前的屏幕分辨率宽
old_height:integer; //用于保存为改变设置前的屏幕分辨率高
changeflag:boolean; //用于表明是否改变了屏幕设置
device_mode:tDevicemode; //用于表明设备模式
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
const
form_width=800;
form_height=600;
begin
{初始化改变标志}
changeflag:=false;
{判断分辨率,若不一致,则改变屏幕分辨率}
if (screen.Width<>form_width)or(screen.Height<>form_Height)then
if EnumDisplaySettings(nil,0,device_mode)then
begin
old_width:=GetSystemMetrics(SM_CXSCREEN);
old_height:=GetSystemMetrics(SM_CYSCREEN);
changeflag:=true;
{改变设置}
device_mode.dmFields:=dm_pelswidth OR dm_pelsheight;
device_mode.dmPelsWidth:=form_width; //给宽度赋值
device_mode.dmPelsHeight:=form_height; //给高度赋值
ChangeDisplaySettings(device_mode,0); //改变设置
{修改成功,显示信息}
showmessage('设置成功,设置为:'+inttostr(form_width)+'*'+inttostr(form_height)+';'+'原设置为:'+inttostr(old_width)+'*'+inttostr(old_height));
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
{判断是否改变,是,则恢复设置}
if changeflag=true then
if EnumDisplaySettings(nil,0,device_mode)then
begin
{恢复设置}
device_mode.dmFields:=dm_pelswidth OR dm_pelsheight;
device_mode.dmPelsWidth:=old_width; //赋原来设置的宽度
device_mode.dmPelsHeight:=old_height; //赋原来设置的高度
ChangeDisplaySettings(device_mode,0); //恢复设置
end;
showmessage('恢复设置成功,设置:'+inttostr(old_width)+'*'+inttostr(old_height));
close;
end;end.不知道这个方法怎么样?
我没有试过菜单
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货