取自 hug网友提供的链接中,不过其中有一处错误,已修正!!!已测试,效果很好。
procedure TForm1.FormCreate(Sender: TObject);
var
x, y,ScreenHeight,ScreenWidth: LongInt;
begin
form1.scaled := true;
ScreenHeight:=600; //假设你的原来的开发环境是 800*600,窗体充满桌面。
ScreenWidth:=800;
//窗体可以缩放
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
//程序运行时获取目标机器的屏幕分辨率
if (x <> ScreenHeight) or (y <> ScreenWidth) then
//目标机器的屏幕分辨率与作者机器的屏幕分辨率不同
begin
form1.height:=form1.height*x DIV ScreenHeight;
form1.width:=form1.width*y DIV ScreenWidth;
scaleBy(x,ScreenWidth); // hug网友提供的链接中此处有误 !!!我已改正!!!
end;
end;