一个代码段让软件自动适应显示器的分辨率:
const
ScreenHeight: integer = 1280;
ScreenWidth: integer = 800;
var
x, y: LongInt;
begin
self.scaled := true;
// 窗体可以缩放
x := getSystemMetrics(SM_CXSCREEN);
y := getSystemMetrics(SM_CYSCREEN);
// 程序运行时获取目标机器的屏幕分辨率
if (x <> ScreenHeight) or (y <> ScreenWidth) then
// 目标机器的屏幕分辨率与作者机器的屏幕分辨率不同
begin
self.height := self.height*x DIV ScreenHeight;
self.width := self.width*y DIV ScreenWidth;
scaleBy(x,ScreenHeight);
// 调用窗体的scaleBy 函数,将窗体大小变为初始大小的x/ ScreenHeight 倍。
// 这是本程序的关键技巧,同时缩放的包括窗体上各组件和字体。
end;
end
这篇博客介绍了一个代码段,用于使软件能够自动适应不同显示器的分辨率。通过获取系统屏幕尺寸并进行适当的比例调整,确保程序在任何分辨率下都能正确显示。关键在于使用`scaleBy`函数调整窗体及其组件和字体的大小。
1510





