我有一个Delphi 7应用程序,在WinXP开发机器上,表单大小与它的设计相同。
但是,在Vista计算机上运行应用程序时,某些表单已放大20-30%,在表单的右下边缘留下大的空白。
在我们客户的一台WinXP机器上,表单已缩小,导致滚动条显示在表单上。
在大多数其他机器上,它显示OK。
该应用确实记住了某些表单上次使用的表单大小,并在下次打开表单时使用它,但即使删除这些设置,默认表单大小仍然与设计方式不同。
有什么想法吗?
答案 0 :(得分:11)
这听起来像well known issue with Delphi forms and interactions with system font sizes。
Delphi表单的默认行为是尝试扩展以尊重(运行时)用户的桌面环境。然而,这可能会产生意想不到的不良副作用,并且您的“症状”听起来可能就像您的情况一样。
但一切都不会丢失! Scaled 属性(默认情况下为TRUE)可以设置为FALSE以防止这种情况,但我建议您阅读第一篇文章,并考虑The information in this article以确定这是否是正确的解决方案在你的情况下。
答案 1 :(得分:1)
Vista机器上的大字体与小字体可能?
答案 2 :(得分:0)
在每个表单的OnCreate事件中使用此代码:
如果Win32Platform = VER_PLATFORM_WIN32_NT则 Font.Name:='MS Shell Dlg 2' 其他 Font.Name:='MS Shell Dlg';