我们有一些用 Delphi 7 编写的遗留应用程序。多年来,我们有一些请求支持这些应用程序中的自定义桌面 dpi 设置,但我们一直能够躲过子弹直到知道。好吧,我们不能了。
当用户将他们的桌面设置为 120dpi 时,一些控件会“脱落”应用程序或超出可见范围,特别是那些锚定在其父级右侧边缘的控件。
如果不进行心脏直视手术,我能做些什么来预防这个问题。
您可能知道,这是Delphi 表单和与系统字体大小交互的一个众所周知的问题。
Delphi 表单的默认行为是尝试缩放以尊重(运行时)用户的桌面环境。然而,正如您所发现的,这可能会产生意想不到的副作用。
但是可以将 Scaled 属性(默认为 TRUE)设置为 FALSE 以防止这种情况发生,但我建议您阅读第一篇文章,并考虑本文中的信息,以确定这是否是适合您情况的正确解决方案。
如果幸运的话,只需将所有表格上的 Scaled 设置为 FALSE 可能会为您提供一个好方法,即使不是一路(这可能很乏味,但不完全是心脏直视手术)。