如何在 Delphi 中更改 TabControl 中活动 TAB 的颜色

wBB*_*wBB 7 delphi tabcontrol firemonkey

如何更改 TabControl(在 FireMonkey 上)中活动 TAB 的颜色,如下所示?

在此输入图像描述

Abd*_*gaz 5

有两种方法可以实现这一点。

1)第一个选项是您可以从TStyleBook (样式设计器) 为TabControl创建CustomStyle

然后您可以添加您想要在自定义设计中使用的任何内容(对于许多形状和颜色,建议使用TRectangle )。

2)我更喜欢使用第二种方式。将TTabControlTabPosition设置为None,然后将TGridPanelLayout添加到表单中要添加选项卡的位置。之后,将 TGridPanelLayout 的列数设置为选项卡数。

现在您需要知道每个选项卡框应该相同。为第一列拖放一个TRectangle,然后设置“对齐客户端”(所有颜色和内部组件取决于您的选择)。

确保您的TRectangle组件HitTest参数为true且内部组件的HitTest参数为false

您还可以处理OnClick事件中的选项卡选择。设置每个 TRectangle(对于选项卡)一个标签,然后将所有选项卡连接到同一个 OnClick 事件。然后您获取发件人的标签并从您的标签中设置您的TabControl1.ActiveTab

  • 我必须使用你的一些技巧,但我无法获得预期的视觉结果,所以我放弃使用“TTabControl”选项卡并创建了自己的选项卡。即使如此,您的答案也是有效的,因此其他人可以用它来解决同样的问题。谢谢你! (2认同)
  • 我总是将此解决方案用于菜单、分页和仪表板表单。希望它有效并能帮助您。您还可以使用“TGestureManager”处理选项卡更改,它可以帮助您滑动选项卡。除了我的答案之外:如果您的“TRectangle”项目需要,请使用 png 图片“TPicture”并使用“TLabel”。 (2认同)