一般来说,Delphi 10.3中的多监视器支持工作得很顺利。但是,我在多监视器上的提示大小方面遇到了一个问题。要重现这个问题,您需要一个多监视器系统,最好是具有相同的监视器。
1.创建一个新的VCL应用程序。添加一个标签,将ShowHint设置为True并添加一些提示文本。
1.将主监视器的显示设置为100%,将辅助监视器的显示设置为200%。
1.启动你的应用程序,它将以100%的比例显示在主显示器上,提示文本的大小与标签文本的大小相同,如图所示。
[
1.现在把你的应用程序移到200%的第二个监视器上。窗体和标签将被放大2倍。但是,提示的大小仍然和以前一样,即提示现在太小了。
1.关闭应用程序,将主显示器的显示更改为200%,将辅助显示器的显示更改为100%。
1.启动你的应用程序,它将出现在主显示器上,提示文本的大小与标签文本相同,所有内容都比标签文本大200%,见图。
1.现在把你的应用程序移到100%的辅助监视器上。窗体和标签会变小两倍。但是,提示的大小保持不变,也就是说,提示现在太大了。
这似乎是Delphi 10.3的VCL中的一个bug,这个问题在Delphi 10.4 Sydney中还会出现吗?
1条答案
按热度按时间rlcwz9us1#
这是 Delphi 早期版本中的一个问题。
在
Delphi 10.4
和更新版本中已修复。Embarcadero在最新Delphi 11
和更新版本的缩放和HighDPI方面做了大量工作。关于缩放和HighDPI支持的一些附加信息。请确保您的项目始终将
Per Monitor v2
设置为DPI Awareness
:这可以在应用程序清单选项中设置:
每监视器DPI感知v2是Windows 10创建者更新中引入的一项功能(版本1703),允许应用程序了解其所显示的每个监视器的DPI缩放。这与以前版本的DPI感知形成对比,以前版本的DPI感知被称为“系统DPI感知”,其中应用将仅知道跨系统中所有显示器的单个DPI缩放。
使用每监视器v2 DPI感知,应用程序可以根据显示它的每个监视器的DPI缩放调整其布局和呈现,从而获得更一致和最佳的用户体验。例如,应用程序可以在DPI较高的监视器上显示较大的UI元素,而在DPI较低的监视器上显示较小的UI元素。