- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 64 位 Windows 计算机 (Win 7) 和 32 位 Windows 计算机 (XP) 上运行 Delphi 2010。
我正在尝试学习如何使用 TRibbon 控件。
我一直在遵循 Marco Cantu 2009 年手册中的示例并观看 YouTube 演示,但我的控件并不像书中或演示中所解释的那样工作。
我通过右键单击控件添加了两个选项卡。然而,当我将 TRibbon 放在主窗体上时,它看起来与我的屏幕截图中的一模一样。它没有书本或 YouTube 演示中的那么高。
我在运行 Windows Xp 和 Delphi 2010 的 Win 32 笔记本电脑上尝试了同样的操作,并得到了完全相同的结果
这是我的机器上的样子
这是演示中的样子
再一次。当它把它放在表单上时,它的形状和高度并不像我在演示中看到的那样。即使我添加标签。我在安装 Delphi 2010 的过程中是否做错了什么?
最佳答案
我终于在启用了 Aero 的 Win7 64 上的 Delphi XE(更新 1)中重现了该问题。 .DFM 文件中的大小似乎设置错误,因为 Ribbon
不支持手动调整大小,您无法在 IDE
(尽管它在运行时正确显示)
或 Object Inspector
中直观地修复它。它偶尔会在运行时正确显示,但似乎也是零星的。
这是一个令人讨厌的错误,因为它使得设计Ribbon
变得不可能。 。您可以添加RibbonGroup
项,并分配 ActionManager
,并尝试完全使用 Structure Pane
来设计它,但这当然不是一个实用的解决方案。
幸运的是,有一个非常简单的解决方法,尽管不得不这样做很烦人。 :)
我两次设法让以下解决方法发挥作用,但重新开始几次都失败了,因此这是一种可能的解决方法(没有 promise - 在 XE 中有效,在 XE2 更新 2 中始终失败):
Ribbon
并添加至少一个选项卡。
View as Text
从上下文(弹出)菜单。
Ribbon
控制在
.dfm
文本,然后更改
Height
来自
26
IDE 分配给
200
。 (下一步将对其进行调整,但这很好 -
200
解决了眼前的问题。)
View as Form
,以及
Ribbon
应正确显示。
(我在 XE2 Update 2 的 QC 中报告了该问题,因为该问题也存在 -
QC #101642 )
我追踪到
TCustomRibbon.GetCaptionHeight
,具体来说
FCaptionHeight := Max(GetSystemMetrics(SM_CYCAPTION), 26);
看起来像GetSystemMetrics
调用返回的值小于 26
在某些 Win7 配置上(虽然我还不知道为什么)。该方法中有几行注释行似乎会改变结果,但正如我所说,它们已被注释掉。
奇怪的部分是在 TCustomRibbon.Create
中,Height
通过调用 GetRibbonMetric(rmFullHeight)
设置,它设置 Result := cRibbonHeight + GetCaptionHeight;
,和cRibbonHeight
是一个常数,定义为 cRibbonHeight = 117;
.
我终于找到了这个。在TRibbon
的声明中,有一个published
属性声明:
published
...
property Height default TCustomRibbon.cRibbonHeight;
因为这是默认值,所以任何其他值似乎都意味着调用 GetRibbonMetric
上面提到的情况不会发生(参见上面提到的 TCustomRibbon.Create
),并且调用 GetSystemMetric
会产生奇怪的结果导致错误值26
保存为“其他值”。奇怪;将在 AM 中更新 QC。
附录:更新了质量控制报告并提供了更多详细信息。
附录:QC 报告 opened 2012 年 5 月,但截至 XE5 更新 1 似乎尚未解决(2014 年 1 月检查)。
关于delphi - TRibbon 不显示选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421205/
当我将 RibbonPage 设置为 false 时,我还需要禁用顶部的选项卡。它必须呈灰色,并且用户不能导航到它。我可以使用 PageControl 做到这一点,但我找不到使用 RibbonPage
我在 64 位 Windows 计算机 (Win 7) 和 32 位 Windows 计算机 (XP) 上运行 Delphi 2010。 我正在尝试学习如何使用 TRibbon 控件。 我一直在遵循
我正在使用delphi 2009的TRibbon组件。根据应用程序状态,某些页面不相关。如何隐藏 TRibbon 页面? RibbonPage1.Visible:=false 并没有真正隐藏页面...
我正在使用 delphi 2009(更新 1、2、3、4)。我看到了一些很奇怪的东西。当我有一个带有大字形的大按钮时,按钮上的图像不在按钮中心!而不是居中,字形的左侧部分从按钮的中心开始。 一个线索是
当我将 TRibbon 控件放置在不是应用程序 MainForm 的窗体上时,TRibbon 的操作(即剪切、粘贴)将始终在执行操作后将焦点返回到 MainForm。 即使保存 TRibbon 的 T
我注意到,当我使用 Delphi 2010 附带的 TRibbon 控件时,它在我的 Windows 7 系统上完美运行。然而,该应用程序在具有“经典主题”的 Windows XP 系统上存在一些奇怪
我是一名优秀的程序员,十分优秀!