Delphi 10.3 Rio中提示的大小

5

总的来说,Delphi 10.3中的多监视器支持运行顺畅。不过,在使用多个显示器时我遇到了一个关于提示大小的问题。为了重现这个问题,您需要使用一个多显示器系统,最好是具有相同分辨率的监视器。

  1. 创建一个新的VCL应用程序。添加一个标签,将ShowHint设置为True,并添加一些提示文本。
  2. 将主显示器的显示比例设置为100%,将次要显示器的显示比例设置为200%。
  3. 启动您的应用程序。它将出现在100%的主显示器上,提示文本的大小与标签文本相同,如下图所示。

[A label and a hint on the primary monitor with 100%.1

4. 现在将您的应用程序移动到第二个显示器,并将其放大200%。表单和标签将放大两倍。但是,提示框的大小仍然与之前相同,即提示框现在太小了。

A label and a hint on the secondary monitor with 200%. The primary monitor is 100%.

5. 关闭您的应用程序,将主监视器的显示更改为200%,将次要监视器的显示更改为100%。 6. 启动应用程序。它将出现在主监视器上,提示文本的大小与标签文本相同,并且一切都比应该具有200%更大,请参见图像。

A label and a hint on the primary monitor with 200%.

现在将您的应用程序移动到100%的辅助显示器上。窗体和标签将会缩小一倍。但是,提示框的大小仍与之前相同,即提示框现在太大了。

A label and a hint on the secondary monitor with 100%. The primary monitor is 200%.

这似乎是 Delphi 10.3 的 VCL 中的一个错误。在 Delphi 10.4 Sydney 中是否仍然出现此问题?


1
看起来像是 https://quality.embarcadero.com/browse/RSP-24541,而且这个问题在 10.4 Sydney 中已经标记为已修复。 - Uwe Raabe
1个回答

1

这是 Delphi 早期版本中的一个问题。

Delphi 10.4 及更高版本中已经修复。Embarcadero 在最新的 Delphi 11 和更高版本中进行了大量的缩放和 HighDPI 工作。


关于缩放和高DPI支持的一些额外信息。确保您的项目始终将DPI Awareness设置为Per Monitor v2DPI Awareness 这可以在应用程序清单选项中设置: Delphi Application Manifest options

Per Monitor v2 DPI Awareness是Windows 10创作者更新(版本1703)中引入的功能,它允许应用程序了解其显示的每个单独监视器的DPI缩放。这与以前的DPI Awareness版本不同,以前的版本被称为“系统DPI Awareness”,其中应用程序只能意识到系统中所有显示器上的单个DPI缩放。

通过 Per Monitor v2 DPI Awareness,应用程序可以根据每个显示器的 DPI 缩放调整其布局和渲染,从而实现更一致和最佳的用户体验。例如,一个应用程序可以在高 DPI 显示器上显示较大的 UI 元素,而在低 DPI 显示器上保持它们较小。


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