首页 \ 问答 \ 如何在Delphi中更改TabControl中活动TAB的颜色(How to change the color of active TAB in a TabControl, in Delphi)

如何在Delphi中更改TabControl中活动TAB的颜色(How to change the color of active TAB in a TabControl, in Delphi)

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

在此处输入图像描述


How to change the color of active TAB in a TabControl (on FireMonkey) as shown below?

enter image description here


原文:https://stackoverflow.com/questions/48836923
更新时间:2019-12-13 07:38

最满意答案

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

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

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

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

现在您需要知道每个选项卡框应该相同。 删除第一列的TRectangle然后将Align设置为Client (所有颜色和内部组件取决于您的选择)。

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

您还可以从OnClick事件处理选项卡选择。 将每个TRectangle(用于选项卡)设置为Tag,然后将所有选项卡连接到相同的OnClick事件。 然后你得到Sender的标签并从你的Tag中设置你的TabControl1.ActiveTab


There are 2 ways to make this happen.

1) First option is you can create CustomStyle for TabControl from TStyleBook (Style Designer).

Then you can add whatever you want to use in your custom design (TRectangle is recommmended for many shape and colors).

2) I prefer to use second way for it. Set the TTabControl's TabPosition to None, then add a TGridPanelLayout to where you want to add tabs in your form. After that, set your TGridPanelLayout's column count for your tab count.

Now you need to know that your each tab box should be same. Drop a TRectangle for first column then set Align to Client (All colors and inner components are depends on your choice).

Be sure that your TRectangle components HitTest parameter is true and inner components' HitTest parameter is false.

Also you can handle your tab selections from OnClick event. Set each TRectangle (for tab) a Tag then connect all tabs to same OnClick event. Then you get Sender's Tag and set your TabControl1.ActiveTab from your Tag.

2018-02-17

相关问答

更多

如何使用Web服务在SharePoint Server 2010中部署和激活SharePoint解决方案?(How to deploy and activate SharePoint solution in SharePoint Server 2010 using web services?)

好的,我已经从Microsoft的SharePoint设计团队找到了一些人,他们已经确认没有具有激活解决方案功能的Web服务。 应该以直接的方式上传解决方案。 OK, I've reached some people from the SharePoint design team at Microsoft and they have confirmed that there is no web service with a functionality to activate the soluti

如何在Java中创建图像(How to create image in Java)

背景在图像中是黑色的,因为除了矩形中的值之外,您没有给任何像素值。 BufferedImage开始时每个像素的RGB为(0,0,0),这是黑色的。 要为整个图像提供白色背景,只需用白色填充整个图像即图像。 BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); g = image.createGraphics(); // not sure on this line, but this seem

如何减少android SQLite中的自动增量_id?(How to decrease the Auto increment _id in android SQLite?)

编辑:也许我应该说清楚只是插入具有正确id的行而不是操纵序列号肯定比下面的方法更好。 如果表中没有id = 3的行,则即使在AUTOINCREMENT表中也可以在id中插入固定值。 也就是说,如果您确定 ,可以使用自动增量值设置为任意值; UPDATE sqlite_sequence set seq=<next sequence no -1> where name=<table name>; 也就是说,如果你想在表'TableA'上的下一个插入中使用AUTOINCREMENT来生成5,那么你可

在java中插入多个记录“连接关闭后不允许任何操作”(insert multiple records in java “No operations allowed after connection closed ”)

您正在关闭最终方法中的连接(cnx)。 这将在您第一次插入时关闭连接(无论是失败还是通过),然后在您下次插入时仍将关闭连接。 如果您愿意,可以尝试将连接开口移动到此方法中,但是打开/关闭连接可能很昂贵,可能会在此方法之外移动关闭/打开。 在我们看到你正在研究的更多代码之前,我们很难说。 You are closing your connection (cnx) in the finally of your method. This will close the connection the fi

为什么我的ASP.NET复选框始终为false?(Why are my ASP.NET checkboxes always false?)

也许,当您在Page_Load上绑定数据时,您忘了这样做: if(!IsPostBack) { //bind the data to the list } Probably, when you bind the data on Page_Load you forgot to do: if(!IsPostBack) { //bind the data to the list }

排序数组的最小“插入次数”(The minimum number of “insertions” to sort an array)

首先请注意,移动元素不会更改除移动元素之外的元素的相对顺序。 考虑最长的非递减子序列(与最长的增加子序列密切相关 - 找到它们的方式相似)。 通过仅移动不在此序列中的元素,很容易看到我们最终得到一个排序列表,因为此序列中的所有元素已经相对于彼此排序。 如果我们不移动此序列中的任何元素,则保证此子序列中两个元素之间的任何其他元素要么大于较大的元素,要么小于较小的元素(如果不是这样,则它本身将在最长的序列),所以需要移动。 (见下面的例子) 它需要不减少吗? 是。 考虑此序列中的两个连续元素是否正在

脚本拼图

最新问答

更多
  • NumPy标量,广播和__iadd__方法(NumPy scalars, broadcasting and the __iadd__ method)
  • 快速排序算法输出错误(Getting wrong output for quicksort algorithm)
  • Rails管理员:没有Rails 4应用程序的编辑,显示或删除按钮(Rails Admin: No edit, show, or delete buttons for Rails 4 app)
  • 部分刷新问题触发两次(Issue with partial refresh triggered twice)
  • jsPlumb draggable element javascript函数(jsPlumb draggable element javascript function)
  • MVC4:ViewModel(带有radiobuttonlist)在HttpPost之后为空(MVC4: ViewModel (with radiobuttonlist) is empty after HttpPost)
  • 如何在同一帐户上设置“Dev repo”(在prod和团队之间)(How to set up a “Dev repo” (between the prod and the team) on the same account)
  • 如何在tcl中将eth0配置为发送方udp端口(how to configure eth0 as a sender udp port in tcl)
  • EF6.1 beta 1如何获得Tooling Consolidation功能?(EF6.1 beta 1 how to get the Tooling Consolidation feature?)
  • 适用于Windows和PHP 5.5的Phalcon(Phalcon for Windows and PHP 5.5)
  • 有没有办法忽略hg责任中的提交?(Is there a way to ignore a commit in hg blame?)
  • Desire2通过API学习访问学期的权限(Desire2Learn Permissions to Access Semesters Via API)
  • 从aspx将服务器的文件复制到另一台服务器(Copy a file of a server to another server from aspx)
  • 使用YSlow / Web Developer扩展程序确定页面大小(Figuring out page size with YSlow / Web Developer extension)
  • Select语句将字符串中的前7个字符与其他表中的其他7个字符进行比较(Select statement which compares first 7 chars in a string with other 7 chars in other table)
  • 检测对注册表的更改,防止更改等(Detect changes to registry, prevent changes, etc)
  • 用户的鼠标/键盘运动分析是否有特殊名称?(Does the analysis of mouse/keyboard motions of a user have a special name?)
  • 获取Rails中资源的路由列表(Get list of routes for a resource in Rails)
  • 用函数值除以数字(Divide a function value by a number)
  • 熊猫Python:如何从今天开始创建失效列?(Pandas Python: How to create lapse since today column?)
  • GDK Bug报告(GDK Bug Reports)
  • 困惑于在python中循环遍历列表(confused about looping through lists in python)
  • 'less'由'which'输出指定的文件('less' the file specified by the output of 'which')
  • 如何在ASP.NET中优化AJAX(How to optimize AJAX in ASP.NET)
  • 在文本文件中转换纪元时间(Convert epoch times in text file)
  • 表细胞伸展(Table cell stretching)
  • GridView控件(GridView Control)
  • 从构建定义文件控制pdb文件输出(Control pdb file output from build defintion file)
  • *将方法传递给类(*Passing a Method into a Class)
  • 如何在HttpReceiveHttpRequest()中使用HTTPS?(How to use HTTPS with HttpReceiveHttpRequest()?)