2

我在我的大多数机器上使用非默认的 Windows 配色方案,并且有一台笔记本电脑,其屏幕设置为 124 DPI,Windows 设置为。

我测试甚至每天使用的许多程序似乎都存在问题,例如显示非标准尺寸的控件、截断的 UI 元素、不可读的文本等。从有点烦人到(几乎)不可用的整个范围。

现在我觉得很多这些问题都是不必要的。在高分辨率屏幕上以几种配色方案运行的简单测试将显示它们,其中一些甚至非常容易纠正(例如总是使用 clWindow、clWindowText 和 clBtnFace 而不是 clWhite、clBlack 和 clSilver)。其中一些更难,比如适当的控制大小。

所以我的问题是:您是否尝试遵循 UI 指南中关于系统颜色、UI 元素的大小和间距以及字体大小和面孔的建议?对它们的合规性测试是否是您的 QA 流程的一部分?即使大多数IDE(在我的例子中是Delphi)都有面向像素的设计器,您是否甚至尝试以对话框单元而不是像素来布置表单?

[编辑]:在睡觉后重新阅读这篇文章时,我注意到这个问题可能看起来像是一个毫无结果的讨论邀请。这不是那个意思,我肯定会对帮助我创建符合 UI 界面指南的应用程序的工具感兴趣,我觉得 Delphi 让我有点失望的领域。另请参阅我自己的答案。

4

4 回答 4

3

我绝对不会。我更愿意花时间改善许多人的体验,而不是少数使用非标准 Windows 设置的人。我通常会做的一些事情,仍然可以解决其中一些问题:

  • 使用 clWindows 等,因为无论如何这都是 Delphi 控件的标准,那么为什么要更改它呢?
  • 将标签放在输入字段上方而不是左侧,这应该可以解决许多大小问题
  • 通过设置锚点,确保表单正确调整大小
  • 确保标签顺序是正确的(如果不这样做可能会成为一个主要的烦恼)

但是我当然不会花时间设置具有奇怪分辨率和颜色的测试计算机,或者更糟糕的是,更改我的开发盒以使用它们(这会搞砸很多事情,而这些事情又需要时间才能正确重置)。

如果付费客户报告非标准设置的问题,则取决于客户是否会得到解决。如果他订购 100 个许可证,他的机会很大。如果他因为视力受损而使用这些设置,那么他的机会很大。如果他把它作为要求的一部分,我会做,但要为额外的工作收费。

于 2008-11-15T09:32:58.200 回答
2

今天,很多软件在非标准 DPI 下无法正常工作,我认为不值得尝试修复它。许多应用程序的故障排除常见问题解答只是指示用户针对相关问题切换到正常字体大小。Microsoft 承认在第 3 方软件中缺乏适当的 DPI 支持,并在 Windows Vista 中重新设计了显示缩放方法,其中所有 GDI 操作都在较低级别上缩放,而不是依赖于知道 DPI 设置的应用程序。

最终答案:这取决于您的软件的受众。如果您的软件可能会被残疾用户使用,那么这可能是值得的。

于 2008-11-15T03:15:37.417 回答
2

除了为标准颜色使用适当的颜色常量外,我还为需要在高 DPI 屏幕上内部使用的应用程序或客户可能需要的应用程序投入了一些额外的精力。

我有一个带有帮助函数的单元,用于确定适当的大小和放置边距,它根据 UI 指南中给出的默认 GUI 字体和对话框单元中的标准值计算这些,并带有帮助函数来计算最大宽度/高度控件数组,位置控件,诸如此类。对于固定大小的表单和对话框,我在使用 GNU gettext 翻译它们的文本后计算控件的位置一次,对于可调整大小的表单,我在 OnResize 处理程序中执行此操作。

这给出了很好的结果,但是很耗时。我希望有类似wxWidgets sizer 功能的东西,一旦设置了控件的最小大小,它就会自动调整大小。不过,我从未见过 Delphi 类似的东西。

于 2008-11-15T10:04:52.397 回答
1

我偶尔会自己测试大字体,因为我的 Vista 笔记本电脑设置为大字体。颜色,不多,但我很少在控件上指定颜色。

但是,正确调整大小非常困难。我通常将 Forms scale 设置为 false,以免它们调整大小错误。

有一些用于自动调整表单大小的工具。我确实调查过它们,但从未有时间正确测试它们:

  • TFormResizer

  • ElasticForm - 具有讽刺意味的是(考虑到组件的区域)此页面中的大部分文本不会显示在 Chrome 中...

  • JVAutoFormSize (在 JVCL 中 - 从我读到的内容似乎不是很有用)

于 2008-11-17T12:33:58.117 回答