我试图通过隐藏一些元素来给用户一个“干净简单”的界面。只有一个小箭头表示他可以展开主菜单栏的某些部分。当一切都关闭时,它看起来像这样:
当你打开所有它看起来像这样:
每个箭头都是位于面板左侧的 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
现在有几个用户报告说面板的一部分被隐藏了,比如:
操作系统(Windows 7)似乎在缩放方面发挥了一些作用。我无法复制此错误。有谁明白这里发生了什么?是否有一种巧妙的方法可以以独立于设置的方式对此进行编程?
更新正如 GDF 在他的回答中正确指出的那样,它与字体的缩放有关(控制面板 > 显示)。这在我的机器上表现得有些奇怪。将其更改为 150% 会产生轻微影响,而将其更改为 125% 会产生重大影响。正如您可能已经猜到的那样,我测试了第一个缩放比例而不是第二个缩放比例。只有当用户报告从 125% 缩减到 100% 时,我才能在我的机器上复制他的错误。
正如几位受访者所建议的那样,我找不到字体与我遇到的麻烦之间的关系。我的系统仍然受到我对 Courier(不是新的)、Segoe UI、Tahoma 和 MS Sans Serif 所做的所有测试的影响:-D。可能是间接的,因为控件可能会调整大小以适应文本。
如何处理?我不知道,我会开始试验,如果我发现了什么,会告诉你。
感谢大家的帮助!