【问题标题】:Delphi GUI Design Specifications and Guidelines [closed]Delphi GUI 设计规范和指南 [关闭]
【发布时间】:2011-08-09 22:01:30
【问题描述】:

我一直在寻找一种方法来标准化我的应用程序布局以提高我的工作效率,因为我浪费了太多时间在每个表单和对话框上定位视觉元素。我开始四处寻找,发现on MSDN

由于 Delphi VCL Designer 使用像素,所有组件的高度和宽度都以像素为单位。我想知道是否有一种简单的方法可以应用这些建议。或者有一个 Delphi 等价物

对于 exp:建议中编辑框和按钮的高度应该相同,但 Delphi 中的默认高度是 TEdit 的 21 和 TButton 的 25。每次放下按钮时都更改它是荒谬的。

【问题讨论】:

  • +1。我不明白为什么这不是一个“真正的问题”。
  • 您希望实现链接的哪一部分?从像素到 DLU 的转换?该链接解释了这一点。推荐的身高尺码? Windows 就是这样做的。控件之间的间距?如果您想在特定于系统的基础上适应 DLU,则必须在运行时完成,或者您可以使用 Delphi 的内置缩放。他们都是?我不清楚这个问题在问什么——这是一份很长的文件。 IMO,不可能按要求回答。 RRUZ 的尝试导致了 9 个链接,并且没有答案不在问题的链接中(无意冒犯 RRUZ) - 无法按要求在此处回答。
  • @Ken,这个问题不是很具体,但对我来说,理解这个问题的关键是..I am wasting too much time positioning visual elements on every form and dialog...I like to know if there is an easy way to apply those recommendations?,可以使用 gexperts 或 Cnpack 向导来简化这个过程,然后阅读有关要遵循的视觉指南的更新的 MSDN 文档。
  • @RRUZ:我不同意。这完全太模糊了——对我来说,它并不比“如何在 Delphi 中设计现代用户界面?”更完整。实在是太难回答了,不得不发不少于9篇文章,其中7篇基本上和OP的链接说的一样。您不妨说“根据链接中的测量值对它们进行间隔”。 GExperts 和 CNWizards 可能会使事情变得更容易一些,但多选控件和使用 IDE 中的箭头键移动它们也是如此。其中任何一个如何实施整个链接文章指南?如果他们不这样做,哪些部分?
  • 这不是一个真正的问题,也没有答案。必须有人定位 UI 元素。那个人就是设计师。没有捷径。

标签: delphi user-interface


【解决方案1】:

由于您使用的 delphi 仅针对 Windows 系统(目前),因此您必须遵循 Microsoft 指南,因此请尝试检查 Windows User Experience Interaction Guidelines 站点,该站点是您发布的链接的更新版本。

查看这些与 Windows 视觉指南相关的链接

这个来自 embarcadero 网站

此外,您可以使用GExpertsCnWizards 之类的插件来一次设置多个控件的视觉属性,例如(宽度、高度、制表顺序等)。

【讨论】:

  • 不是一个简单的答案,考虑插件。
【解决方案2】:

这可能不是您要寻找的答案;但是从“我浪费太多时间......”的角度来处理您的问题,您可能有兴趣查看 Developer Express 布局控件 (http://www.devexpress.com/Products/VCL/ExLayoutControl/)。

这个组件的好处是布局规范可以集中保存在“布局存储库”中,因此您可以在一个地方调整控件上所有表单的间距和外观。

它在导入现有表单及其控件方面也做得非常好,因此转换不是主要的痛苦。他们确实说布局控件最适合开发人员快速编辑器(我使用),因此我无法对“标准”VCL 控件的任何特定问题发表任何评论。

(免责声明:只是一个满意的客户,没有隶属关系)

【讨论】:

  • 如果不满意我会先尝试开源解决方案,也许我会尝试 ExLayoutControl !!!
【解决方案3】:

使用框架

您可以通过使用框架来提高应用程序的一致性。

如果您的屏幕或面板带有您在多个地方使用的控件,您可以使用一个框架来驱动所有这些。框架在任何地方看起来都一样,因为只有一个来源。

您只需定位一次组件,节省时间。
如果您在框架中放置尽可能多的代码,您还可以节省编写代码的时间。
Frames 最好在较新的 Delphi 版本中使用,因为在旧 Delpi 上实现 Frames 并不是 100% 没有错误的。

在 Delphi 2007 (我使用的) 上它们工作得很好。

见:What is the accepted way to use frames in Delphi?

【讨论】:

  • 如果您要重复使用相同的东西,框架可以节省您的时间。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
相关资源
最近更新 更多