如何在不同的分辨率下自动调整窗口的大小! 找企业财务软件
急,谢谢!
2楼: windows会自己调整的,这个不用操心。
如果你的软件要在高分辨率下才能工作正常,你可以设个限止如:“对不起,本软件只能在
800*600以上的分辨率下才能工作” 如企业财务软件
3楼: 我也想知道,如果根据分辨率来调整程序中的字体大小和控件位置和控件大小。
4楼: 强行改用户的分辨率,退出时还原
5楼: 试试 scaleby
6楼: 动态调整显示器分辨率
Delphi提供了可以动态改变屏幕分辨率的函数,分别是EnumDisplaySettings()和ChangeDisplaySettings()。有了它们,编程时可以随时改变分辨率以适应要求。下面的CRTReset函数能方便实现这一功能:
implementation
function CRTReset(X, Y: Word): Boolean;
var
lpDevMode: TDeviceMode;
begin
Result:= EnumDisplaySettings(nil, 0, lpDevMode); //获取显示模式
if Result then begin
lpDevMode.dmFields := DM_PELSWID
TH 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 CRTReset(800, 600) then ShowMessage(''Now is 800*600''); //调用函数,设置分辨率为800×600
end;
库存管理软件版7楼: 自适应窗体
procedure TForm1.FormCreate(Sender: TObject);
Const Orignwidth=800; Orignheight=600;
begin
scaled:=true;
if (screen.width<>orignwidth) then begin
height:=longint(height)*longint(screen.height) div orignheight;
width:=longint(width)*longint(screen.width) div orignwidth;
scaleby(screen.width , orignwidth);
end;
end;