在project里,application.run的前面加上如下代码: devmode:tdevicemode; result:boolean;begin if enumdisplaysettings(nil,0,devmode) then begin devmode.dmfields:=dm_pelswidth or dm_pelsheight; devmode.dmpelswidth:=1024; devmode.dmpelsheight:=768; changedisplaysettions(devmode,0); end; end;然后在主窗体的onclose里同样加上上面的代码,只是将1204和768,改为800和600。
倒这个是API怎么会找不到!65、动态修改显示器分辨率 Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是EnumDisplaySettings() 和ChangeDisplaySettings(), 下面这个例子就是了 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;
devmode:tdevicemode;
result:boolean;begin
if enumdisplaysettings(nil,0,devmode)
then
begin
devmode.dmfields:=dm_pelswidth or dm_pelsheight;
devmode.dmpelswidth:=1024;
devmode.dmpelsheight:=768;
changedisplaysettions(devmode,0);
end;
end;然后在主窗体的onclose里同样加上上面的代码,只是将1204和768,改为800和600。
Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是EnumDisplaySettings() 和ChangeDisplaySettings(),
下面这个例子就是了
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;