这个方法是在Lazarus高DPI控制位置移动问题与解决 - 禁卫军 - 博客园基础上改进的:
procedure TForm1.FormCreate(Sender: TObject); begin if Screen.PixelsPerInch<>self.DesignTimePPI then begin ScaleBy(self.DesignTimePPI,Screen.PixelsPerInch); end; end;
windows:
左中2图是在虚拟机运行时的界面:
左边的图:没进行DPI处理
中间的图:用上面的代码处理
右边的图:在lazarus编程(Design)电脑运行时的界面

交叉编译后在Linux运行:
左边的图:没处理DPI
右边的图:用上面的方法处理DPI后的界面

浙公网安备 33010602011771号