我在一台屏幕分辨率为96的笔记本电脑上用 Delphi 10开发了一些项目。我现在在一台屏幕分辨率为201的Microsoft Surface上使用Delphi 10.4 Community Edition。在缩放应用程序时,是否有一个函数或设置可以自动转换数字定义的坐标?为了说明我的意思,我添加了以下代码片段。
procedure TForm1.Button1Click(Sender: TObject);
begin
with Canvas do
begin
MoveTo(0,0);
LineTo(400,250);
MoveTo(0,0);
LineTo(ClientWidth,ClientHeight);
end;
end;
绘制的第一条线不缩放,第二条线显然缩放。
请允许我补充一句:
如果我在屏幕分辨率为96的旧笔记本电脑上编译相同的代码,然后在屏幕分辨率为201的Surface笔记本电脑上运行exe文件,它的缩放范围还可以,我希望有一个工具可以在我的新电脑上编译我的旧程序,而不必手动更改所有涉及坐标x和y的代码。
2条答案
按热度按时间f45qwnt81#
在TCanvas中没有内置的坐标缩放。你可以使用这个CLASS HELPER:
如以下所示使用:
dy1byipe2#
为了在我的新电脑上运行用 Delphi 10开发的项目,使用Delphi 10.4社区版,我将设置项目选项-〉应用程序-〉清单-〉DPI感知更改为GDI缩放,这一切都像一个魅力。