如何在 Firemonkey 的 TTabItem 中插入另一个控件

Posted

技术标签:

【中文标题】如何在 Firemonkey 的 TTabItem 中插入另一个控件【英文标题】:How to insert another control into TTabItem in Firemonkey 【发布时间】:2021-12-10 03:42:56 【问题描述】:

我想在TTabControl 的“选项卡式”部分TTabItem 中插入一个额外的TText,这样我就可以有另一个不同颜色的文本。

似乎无法将控件移至“选项卡式”部分。

有没有办法做到这一点?

【问题讨论】:

对不起,如果我的问题不清楚。我已经粘贴了一张图片来说明我需要什么。我需要在 HOME 底部(区域)的某个位置添加一个新的 TText。我不想将新的 TabItem 添加到 TabControl。这个新的文本位置与“home”文本的颜色和大小不同。理想情况下,我想控制“新”绿色文本的确切位置。 您可以绘制实现 TTabItem 的 onPaint 事件的自定义文本,但您只会在运行时看到您的文本。 @AlexSawers 如果您可以将其发布为答案,我会将其标记为答案。感谢您的提示! 【参考方案1】:

由于要求在TTabItem 上显示简单的文本,因此可以使用TTabItem 控件的onPaint 事件轻松实现。所以这段代码:

procedure TForm1.TabItem1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
var
  R: TRectF;
begin
  // Use only 1/3 top part of the canvas
  R:=RectF(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom / 3);
  // Set font color and size
  Canvas.Fill.Color := TAlphaColors.Seagreen;
  Canvas.Font.Size := 12;
  // Draw text
  Canvas.FillText(R, 'New!', False, 1, [], TTextAlign.Center, TTextAlign.Center);
end;

产生这个:

【讨论】:

以上是关于如何在 Firemonkey 的 TTabItem 中插入另一个控件的主要内容,如果未能解决你的问题,请参考以下文章

Firemonkey:如何定义一个包含另一个组件的组件?

如何使用 FireMonkey 创建托盘图标?

如何在 Firemonkey 中创建“无激活”表单

如何在 firemonkey 中知道焦点在控件内?

如何托管 FireMonkey 表单客户端在另一个内部对齐?

如何使用firemonkey在选定区域裁剪位图?