Delphi程序分辨率问题解决方案

3
我们有一个运行在Windows 7 Professional SP1上的Delphi 7程序,大约是10年前开发的。在当前系统上,由于某些窗体元素大小不正确,导致它无法使用,因为它们包含的文本无法适应或图形溢出窗口底部:
图片1:表格行大小不正确(或文本比应该更大)
图片2:窗口中有一个图形,但图形的底部部分不可见。而且没有滚动条...
我们没有源代码,也没有与开发软件的人联系。我们认为该软件是使用Delphi 7构建的,因为它使用了几个xxxx70.bpl库。
我们尝试改变屏幕分辨率和更改兼容模式来运行程序,但都没有成功。
有什么我们可以尝试的吗?

3
请使用打印屏幕键获取屏幕截图,然后在图像编辑器中进行裁剪。 - David Heffernan
抱歉,该软件安装在连接不佳的电脑上,因此摄像头是最快的选择... - Martin Dusek
1个回答

4
您的程序不支持DPI缩放,而您正在使用字体缩放设置运行应用程序。应用程序字体会自动缩放,但是您的Delphi应用程序没有适应性。
以下是一些选项供您参考:
- 使用100%字体缩放来运行您的计算机。 - 使用大于125%的字体缩放来运行您的计算机。然后DPI虚拟化将会启动,这应该可以解决问题。尽管应用程序在缩放时会受到像素失真,看上去有些模糊。 - 尝试查找一个兼容性设置,强制DPI虚拟化。我不知道是否存在这样的设置。 - 编辑可执行文件中的.dfm资源,将 Scaled 属性设置为true。这需要一个理解Delphi的资源编辑器,例如XN资源编辑器。我不知道这是否有效。如果有效,则每个窗体都将根据字体缩放重新调整大小。
更新:
强制DPI虚拟化也无济于事。系统会告诉您的应用程序字体缩放为125%,并从那里进行缩放。但似乎您的应用程序甚至不能正确处理125%的缩放。因此,您唯一的选择就是禁用所有字体缩放,或者尝试使用 Scaled 属性。

谢谢,Windows 中设置了 150% 的字体大小。我将其更改为 100%,现在可以正常工作了。 - Martin Dusek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接