Delphi 10 Seattle对多显示器支持进行了哪些改进?

3
当我阅读 Delphi 10 Seattle 的新功能列表时,我看到了以下内容:
  1. 改进的多监视器支持,可以将大多数窗体和面板放置在不同的辅助监视器上
  2. 增强的 IDE 项目选项,可轻松启用应用程序的高 DPI 感知,以及针对 VCL 应用程序的 Windows 8.1/10 多监视器支持
Windows 7 或以上版本不是已经有了多监视器(或双视图)支持吗?而 Delphi IDE 提供的多监视器支持有什么更多优势呢?
1个回答

13

我认为第一项很清楚。现在,IDE中的某些表单可以放置在不同的监视器上。这与Windows版本无关,而是IDE的更改。

至于第二项,它涉及到你应用程序的DPI感知。有一个新的项目选项可以让你控制在IDE生成的清单中使用的DPI感知设置。以前的IDE没有这样的设置,并且IDE生成的清单没有包括DPI感知设置。

此外,VCL现在具有每个监视器的DPI感知。也就是说,VCL通过缩放表单响应WM_DPICHANGED到新监视器的DPI缩放。

为了解决传统尺寸监视器、所谓的4K大型监视器、高像素密度监视器等需要截然不同的DPI缩放的问题,Windows 8.1引入了每个监视器的DPI缩放。

新的VCL功能在一定程度上解决了这个问题,但忽略了一个关键点。当缩放表单时,必须使用不同大小的图标来制作工具栏按钮、菜单等。如果您不希望在高DPI缩放下看到过小的图标,您作为开发人员将需要解决这个问题。

有关DPI感知应用程序的更多细节:


你是如何处理字形缩放问题的?我们现在也面临着同样的问题。我们使用DevExpress并尝试找到一个好的解决方案。 我们目前使用ImageLists,到目前为止最好的解决方案是为不同的DPI比例使用不同的图像列表。 100% DPI比例->16 x 16 125% DPI比例->20 x 20 150% DPI比例->24 x 24 ... - santiagoIT
我使用一个图像列表,并从资源中加载适当DPI级别的图标。但是我还没有解决每个监视器的DPI问题。对于这个问题,我认为我会根据您所说的每个尺寸使用一个图像列表,但肯定会在运行时从资源中加载。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接