是否可以设置内置功能区控件的字体(D2009)?

时间:2010-08-26 08:33:15

标签: delphi ribbon font-size ribbon-control

我想增加标准(D2009)功能区控件的字体大小,但我找不到要执行此操作的属性。 是否可以改变字体?是的,怎么样?

感谢

1 个答案:

答案 0 :(得分:1)

TRibbon有一个已发布的Font属性,我会用它吗?

alt text

只需确保没有选择功能区的任何子组件,或者在执行此操作时,按下escape,直到Object Inspector显示TRibbon本身的属性。

更新(以回应评论)

它适用于我,只是试图确保。我使用了组件库中的FontSelector(TMS Software),并将Ribbon1.Font.Name设置为任何有效的字体名称(由字体选择器从系统中检索),例如“Verdana”或“Comic Sans MS”对功能区上显示的所有文本产生立即可见效果。

所以:

Ribbon1.Font.Name = 'Comic Sans MS';

应该可以做到这一点,但为了测试它,我可能会选择一种字体(例如“Modern”),与Tahoma(大多数系统上的标准系统字体)的区别更为明显。

注意:没有检查过这个,但如果你只能在功能区上使用True Type字体,我不会感到惊讶。

更新

Andreas Rejbrand刚刚指出,在我之前的更新中,我忽略了OP想要改变Font的大小而不是字体(由其名称标识)的事实。不幸的是,事实证明,当然Font属性有一个大小,改变它确实没有任何影响......嗯,为什么不呢?

一些调查发现以下

  • 字体的大小确实会发生变化
  • 功能区最终收到CMFONTCHANGED消息
  • 处理该消息使功能区更改连接到功能区的所有ActionBar的字体
  • 然后启动RebuildRibbonMetrics
  • 然后继续设置Tabs[I].Page.Canvas.Font.Size := GetRibbonMetric(rmFontSize);
  • 和GetRibbonMetric - 瞧瞧 - 无条件地返回8,硬编码,甚至不是常数,只是整数字。

嗯,这就是为什么你可以将Ribbon的字体大小更改为你的内容,但它永远不会有任何影响。

为什么这样编码?不知道。可能要通过Quality Central向Borcadero询问。我已经浏览了MS功能区控制指南,并且记不起任何说明功能区的字体大小应始终为8 ...