如何让程序自动适应不同的屏幕分辨率(0分)

  • 主题发起人 主题发起人 xie_kx
  • 开始时间 开始时间
X

xie_kx

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让程序自动适应不同的屏幕分辨率?
谢谢!!
xie_kx@163.com
 
const
DefaultScreenWidth=800; {缺省屏幕宽度}
DefaultScreenHeight=600; {缺省屏幕高度}

procedure ScaleFormToScr(Form:TForm);
procedure DoScale(ClientScreenWidth,ClientScreenHeight:Integer);
begin
with Form do
begin
if position=poDesigned then
begin
Left:=MulDiv(Left,ClientScreenWidth,DefaultScreenWidth);
Top:=MulDiv(Top,ClientScreenHeight,DefaultScreenHeight);
end;
if (BorderStyle=bsSizeable) then
begin
{如果设计尺寸比客户屏幕尺寸大则无法获得设计的准确尺寸,除非再从资源文件
重新读入,但这似乎是小题大作了。这里只是简单地}
if Width<ClientScreenWidth then
Width:=MulDiv(Width,ClientScreenWidth,DefaultScreenWidth);
if Height<ClientScreenHeight+12 then
Height:=MulDiv(Height,ClientScreenHeight,DefaultScreenHeight);
end;
ScaleBy(ClientScreenWidth,DefaultScreenWidth);
end;
end;
begin
{调整窗体尺寸使之能够在不同分辨率的显示器上正确显示:}
if (Screen.Width<>DefaultScreenWidth) then
DoScale(Screen.Width,Screen.Height);
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部