delphi – 为什么PC之间的控件缩放不同?
我试图通过隐藏一些元素给用户一个“干净简单”的界面.只有一个小箭头表示他可以展开主菜单栏的某些部分.全部关闭后,它看起来像这样:
当你打开所有它看起来像这样: 每个箭头都是一个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所做的所有测试的影响.可能是间接的,因为控件可能已调整大小以容纳文本. 怎么处理这个?我不知道,我会开始尝试,如果我找到了什么会告诉你. 感谢大家的帮助! 解决方法
如果您的问题是我所相信的,那么您刚才说出了答案. Windows 7使用缩放某些字体.当您在PC上安装Win7时,它会检查显示器的大小,并根据您的显示器大小将“默认”比例设置为100%或125%.问题是,同时它将字体文件安装到计算机上.对于某些字体,它使用不同的“默认”字体文件.
我的猜测是你的应用程序正在使用MS Sans Serif …这是获得不同字体文件安装的字体之一,具体取决于Win7使用的缩放比例(默认). 要验证这一点,您的用户会告诉您希望将比例设置为默认值,您可以通过右键单击桌面并选择“个性化”然后选择左下角的“显示”来查看. 以下链接显示如何将使用中的字体文件更改回原始文件 但是,我会试图摆脱这种字体并更新布局元素,以便在Win7以及过去的操作系统上按预期工作 鉴于您提供的信息量有限,我认为您正在处理此问题… 更新 我不太清楚哪个字体文件是哪个,但我知道2个罪魁祸首1)SSERIFF.FON2)SSERIFE.FON (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |