Delphi程序解析

时间:2015-05-26 07:41:01

标签: delphi resolution

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

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

enter image description here

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

enter image description here

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

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

我们可以尝试一下吗?

1 个答案:

答案 0 :(得分:4)

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

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

  • 使用100%字体缩放运行您的计算机。
  • 使用> 125%字体缩放运行您的计算机。然后DPI虚拟化将启动,这将解决问题。虽然app可能看起来模糊,但在缩放时会出现锯齿现象。
  • 尝试查找强制DPI虚拟化的compat设置。不知道这样的事情是否存在。
  • 编辑可执行文件中的.dfm资源,将Scaled属性设置为true。这需要一个了解Delphi的资源编辑器。例如XN资源编辑器。我不知道这是否有效。如果它确实有效,则每个表单将根据字体缩放重新缩放。

更新

第二个想法是强制DPI虚拟化无济于事。系统会告诉您的应用程序字体缩放比例为125%并从那里开始缩放。但是你的应用程序似乎甚至无法正确处理125%的缩放比例。所以除了禁用所有字体缩放或者尝试使用Scaled属性之外别无选择。