为什么PC之间的控件缩放会有所不同?

时间:2012-05-31 20:18:30

标签: delphi windows-7 panel delphi-xe

我试图通过隐藏一些元素为用户提供一个“干净简单”的界面。只有一个小箭头表示他可以扩展主菜单栏的某些部分。全部关闭时,它看起来像这样:

enter image description here

当你打开它时,它看起来像这样:

enter image description here

每个箭头都是一个位于面板左侧的SpeedButton。通过单击按钮,宽度在设计时(打开)的Speedbutton(已关闭)宽度和面板宽度之间切换。设计时面板的宽度存储为常量。 show_hide_controls程序处理这个:

procedure TCompose_Main.show_hide_controls (key: string; Button: TSpeedButton; Panel: TPanel; width: Int32);
begin
   if GPA.iKey [key] = 1
      then Panel.Width := width         // show panel, set panel to design width
      else Panel.Width := Button.Width; // hide panel, set with to button width
   Button.Glyph.Assign (nil);
   Images_Left_Right.GetBitmap (GPA.iKey [key], Button.Glyph);
end; // show_hide_controls //

此例程的调用如下:

show_hide_controls ('Show Play Controls', // index to panel to show/hide
                    Enlarge_Play,         // Speedbutton requesting the enlargement/hide
                    Panel_Play,           // Panel to show/hide   
                    cPlayWidth);          // Width of panel when shown 

现在有几个用户报告隐藏了部分面板,例如:

enter image description here

操作系统(Windows 7)似乎在扩展方面有一些技巧。我无法复制此错误。有谁知道这里发生了什么?是否有一种巧妙的方法可以以独立的设置方式对此进行编程?

更新正如GDF在答案中正确指出的那样,它与缩放字体(控制面板>显示)有关。这在我的机器上表现得有些奇怪。将其更改为150%会产生轻微影响,而将其更改为125%会产生重大影响。正如您可能已经猜到的那样,我测试了第一个而不是第二个缩放。只有当用户报告从125%缩小到100%时,我才能在我的机器上复制他的错误。

我找不到字体和我遇到的麻烦之间的关系,正如几位家属所建议的那样。我的系统仍然受到我使用Courier(不是新的),Segoe UI,Tahoma和MS Sans Serif:-D所做的所有测试的影响。可能间接因为控件可能已调整大小以容纳文本。

如何处理?我不知道,我会开始尝试,如果我发现了什么会告诉你。

感谢大家的帮助!

1 个答案:

答案 0 :(得分:10)

如果你的问题是我所相信的,你刚才说出了答案。 Windows 7可以缩放某些字体。当您在PC上安装Win7时,它会检查显示器的大小,并根据您的显示器大小将“默认”比例设置为100%或125%。问题是,同时它将字体文件安装到计算机上。对于某些字体,它使用不同的“默认”字体文件。

我的猜测是你的应用程序正在使用MS Sans Serif ...这是获得不同字体文件安装的字体之一,具体取决于Win7使用的规模(默认)。

要验证这是否让您的用户告诉您希望将比例设置为默认值,您可以通过右键单击桌面并选择“个性化”然后选择左下角的“显示”来查看。

以下链接显示如何将使用中的字体文件更改回原始文件 http://www.rlvision.com/misc/windows_7_font_bug.asp

但是,我会试图摆脱这种字体并更新布局元素,以便在Win7以及过去的操作系统上按需工作

鉴于您提供的信息有限,我认为您正在处理此事......

<强>更新 因为当你提到125%v 150%之间的不同外观时你提醒我。我只是想确保你知道两个不同的MS Sans Serif文件在不同的规模上看起来更好。其中一个字体文件在100%和150%时看起来很棒但在125%时却很可怕。另一个字体文件在125%时看起来很棒,但在100%和150%时可怕。

我不太清楚哪个字体文件是哪个,但我知道2个罪魁祸首 1)SSERIFF.FON 2)SSERIFE.FON