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



因此,在我正在编写的程序中,我使用具有多个选项卡的TPageControl组件。我想改变当前PageControl上的活动页面的工作表的选项卡的颜色,然后在单击另一个页面后重置颜色(然后该选项卡将因其是活动页面而改变,等等…),以使导航页面控件更容易一些。但我不知道该怎么做。我确实尝试使用页面控件的OnChange过程和一些像这样的代码(我知道这是可怕的错误,但我耗尽了想法和谷歌搜索。

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

提前感谢您的帮助!

亲切的问候PrimeBeat

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

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

在我看来"只是添加一个颜色"与默认情况下控件已经具有所有优点和功能的绘制方式相比,几乎没有价值。以色盲为例:这些人可能有问题。

最新更新