Delphi - 更改活动页面的选项卡颜色并在单击另一个选项卡后重置

Delphi - Changing active page's tab color and having it reset after clicking on another tab

因此,在我编写的程序中,我使用了带有多个选项卡 sheet 的 TPageControl 组件。我想更改 sheet 选项卡的颜色,该选项卡当前是 PageControl 上的活动页面,然后在单击另一个页面后重置颜色(然后该选项卡将由于它是活动页面而更改等等......),使页面控件的导航更容易一些。但我不确定该怎么做?我确实尝试使用页面控件的 OnChange 过程和一些类似的代码(我知道这是非常错误的,但我 运行 没有想法和 google 搜索。无论如何它没有工作。):

with pgcTabs.ActivePage do
begin 
brush.color:=clBlue;
font.color:=clWhite;
end; 

在此先感谢您的帮助!
亲切的问候
PrimeBeat

你不能。除了使用 TTabSheet.Highlighted 之外,您无法控制选项卡的显示方式。

或者你必须自己完全绘制它,就像大多数其他控件一样:将 TPageControl.OwnerDraw 设置为 true,然后使用 OnDrawTab 事件绘制你想要的任何内容.它应该与 TTabControl.OnDrawTab (see answer) 相同。自己绘制所有东西的缺点(双关语)通常是所有额外的工作要做:检查尺寸、解释加速键、尊重系统颜色和设置(即 LTR)...

在我看来,与默认情况下已经具有所有优点和功能的控件相比,“仅添加颜色”几乎没有价值。考虑色盲:那些人可能宁愿有问题。