Delphi 程序分辨率
Delphi program resolution
我们有一个 Delphi 7 程序 运行ning on Windows 7 Professional SP1,大约在 10 年前开发。在当前系统上,它变得不可用,因为某些表单元素的大小不正确,因此它们包含的文本不适合那里或图表溢出 window:
的底部
图片 1:Table 行的大小不正确(或文本比应有的大)
图2:window中有一张图,但看不到图的底部。而且没有滚动条...
我们没有源代码,也没有与软件开发人员联系。我们认为该软件是在 Delphi 7 中构建的,因为它使用了多个 xxxx70.bpl 库。
我们尝试更改屏幕分辨率并更改用于 运行 程序的兼容模式,但没有成功。
有什么我们可以尝试的吗?
您的程序不支持 DPI,并且您是 运行 字体缩放设置,这意味着要求应用程序进行缩放。应用程序字体会自动缩放,但您的 Delphi 应用程序不适应。
我可以为您查看一些选项:
- 运行 你的机器有 100% 的字体缩放。
- 运行 您的机器的字体缩放比例 >125%。然后 DPI 虚拟化将启动,应该可以解决这个问题。虽然应用程序可能看起来模糊,因为它在缩放时会出现锯齿。
- 尝试找到强制 DPI 虚拟化的兼容设置。不知道有没有这种东西。
- 编辑可执行文件中的 .dfm 资源以将
Scaled
属性 设置为 true。这将需要一个理解 Delphi 的资源编辑器。例如 XN 资源编辑器。我不知道这是否行得通。如果它确实有效,每个表单将根据字体缩放比例重新缩放自己。
更新
再想想,强制 DPI 虚拟化无济于事。系统会告诉您的应用字体缩放比例为 125% 并从那里开始缩放。但是您的应用似乎甚至无法正确处理 125% 的缩放比例。因此,除了禁用所有字体缩放或尝试使用 Scaled
属性 之外,您别无选择。
我们有一个 Delphi 7 程序 运行ning on Windows 7 Professional SP1,大约在 10 年前开发。在当前系统上,它变得不可用,因为某些表单元素的大小不正确,因此它们包含的文本不适合那里或图表溢出 window:
的底部图片 1:Table 行的大小不正确(或文本比应有的大)
图2:window中有一张图,但看不到图的底部。而且没有滚动条...
我们没有源代码,也没有与软件开发人员联系。我们认为该软件是在 Delphi 7 中构建的,因为它使用了多个 xxxx70.bpl 库。
我们尝试更改屏幕分辨率并更改用于 运行 程序的兼容模式,但没有成功。
有什么我们可以尝试的吗?
您的程序不支持 DPI,并且您是 运行 字体缩放设置,这意味着要求应用程序进行缩放。应用程序字体会自动缩放,但您的 Delphi 应用程序不适应。
我可以为您查看一些选项:
- 运行 你的机器有 100% 的字体缩放。
- 运行 您的机器的字体缩放比例 >125%。然后 DPI 虚拟化将启动,应该可以解决这个问题。虽然应用程序可能看起来模糊,因为它在缩放时会出现锯齿。
- 尝试找到强制 DPI 虚拟化的兼容设置。不知道有没有这种东西。
- 编辑可执行文件中的 .dfm 资源以将
Scaled
属性 设置为 true。这将需要一个理解 Delphi 的资源编辑器。例如 XN 资源编辑器。我不知道这是否行得通。如果它确实有效,每个表单将根据字体缩放比例重新缩放自己。
更新
再想想,强制 DPI 虚拟化无济于事。系统会告诉您的应用字体缩放比例为 125% 并从那里开始缩放。但是您的应用似乎甚至无法正确处理 125% 的缩放比例。因此,除了禁用所有字体缩放或尝试使用 Scaled
属性 之外,您别无选择。