如何在Delphi 7应用程序中支持自定义桌面DPI设置?

Ger*_*els 8 delphi desktop dpi

我们有一些用Delphi 7编写的遗留应用程序.多年来我们已经收到一些请求来支持这些应用程序中的自定义桌面dpi设置,但我们已经能够躲避子弹直到知道.好吧,我们不能了.

当用户设置自己的桌面说120DPI一些控制"脱落"的应用程序或延伸超过可见的是锚定到其父的右边缘的形式和具体的那些的.

如果没有心脏直视手术,我该怎么做才能预防这个问题.

Del*_*ics 1

您可能知道,这是Delphi 表单以及与系统字体大小交互的一个众所周知的问题

Delphi 窗体的默认行为是尝试进行扩展以尊重(运行时)用户的桌面环境。然而,正如您所发现的,这可能会产生意想不到的副作用。

但是可以将 Scaled 属性(默认为 TRUE)设置为 FALSE 以防止出现这种情况,但我建议您阅读第一篇文章,并考虑本文中的信息,以确定这是否是适合您情况的正确解决方案。

如果您幸运的话,只需在所有表格上将“Scaled”设置为“FALSE”,即使不是一路顺利(这可能很乏味,但并不完全是心脏直视手术),也可能会帮助您实现这一目标。

  • -1 提示甚至可以考虑简单地将“Scaled”设置为“False”。人们可以做到这一点,但只有在运行时完全调整所有控件的大小和重新定位。最好是在为每个表单设置正确的系统字体(在运行时确定)之后。任何缩放或运行时调整大小对于视力受损和/或高 DPI 屏幕的人来说都是残酷的。 (3认同)