【问题标题】:Delphi program resolutionDelphi程序解析
【发布时间】:2015-08-07 18:23:06
【问题描述】:

我们有一个在大约 10 年前开发的 Windows 7 Professional SP1 上运行的 Delphi 7 程序。在当前系统上,它变得无法使用,因为某些表单元素的大小不正确,因此它们包含的文本不适合那里,或者图形溢出窗口底部:

图 1:表格行大小不正确(或文本比应有的大)

图 2:窗口中有一个图表,但图表的底部不可见。而且没有滚动条...

我们没有源代码,也没有与开发该软件的人联系。我们认为该软件是在 Delphi 7 中构建的,因为它使用了多个 xxxx70.bpl 库。

我们尝试更改屏幕分辨率并更改用于运行程序的兼容模式,但没有成功。

有什么我们可以尝试的吗?

【问题讨论】:

  • 请使用 Print Screen 按钮拍摄屏幕截图,然后在图像编辑器中进行修剪。
  • 抱歉,该软件安装在连接不良的 PC 上,因此相机是最快的选择...

标签: delphi resolution


【解决方案1】:

您的程序不支持 DPI,并且您正在使用字体缩放设置运行,这意味着应用程序被要求缩放。应用程序字体会自动缩放,但您的 Delphi 应用程序不适应。

我可以为您看到一些选项:

  • 以 100% 字体缩放运行您的计算机。
  • 以 >125% 的字体缩放运行您的计算机。然后 DPI 虚拟化将开始解决问题。虽然应用可能会显得模糊,因为它在缩放时会出现锯齿。
  • 尝试找到强制 DPI 虚拟化的兼容设置。不知道有没有这样的东西。
  • 编辑可执行文件中的 .dfm 资源,将 Scaled 属性设置为 true。这需要一个理解 Delphi 的资源编辑器。例如 XN 资源编辑器。我不知道这是否可行。如果它确实有效,每个表单将根据字体缩放重新缩放自己。

更新

再想一想,强制 DPI 虚拟化也无济于事。系统会告诉您的应用程序字体缩放为 125% 并从那里缩放。但是您的应用似乎无法正确处理 125% 的缩放。因此,除了禁用所有字体缩放或尝试使用 Scaled 属性之外,您别无选择。

【讨论】:

  • 谢谢,Windows 中设置了 150 % 的字体大小。我将其更改为 100 % 并且可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 2014-08-04
  • 2017-07-01
  • 1970-01-01
相关资源
最近更新 更多