【问题标题】:Delphi - Changing active page's tab color and having it reset after clicking on another tabDelphi - 更改活动页面的选项卡颜色并在单击另一个选项卡后将其重置
【发布时间】:2021-04-21 05:08:22
【问题描述】:

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

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

提前感谢您的帮助!
亲切的问候
PrimeBeat

【问题讨论】:

  • @DelphiCoder 一个完整的视频只是为了指出使用.OnDrawTab 并且代码示例无处可作为文本?
  • @AmigoJack 抱歉,没时间帮忙了 :(

标签: delphi tabs delphi-xe2


【解决方案1】:

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

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

在我看来,与默认情况下控件如何利用其所有优点和功能进行绘制相比,“仅添加颜色”几乎没有价值。考虑色盲:这些人可能会遇到问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2018-03-26
    • 2016-04-12
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多