gpt4 book ai didi

delphi - 在Firemonkey中将图标添加到TTabControl

转载 作者:行者123 更新时间:2023-12-03 18:31:55 24 4
gpt4 key购买 nike

首先,我必须说,我已经阅读过SO的this问题。但是实际上这对我没有帮助。

我想向TTabControl添加图标,但是这似乎不像在VCL(TPageControl)中那样容易。如您所知,在Image Index中没有类似TTabControl的东西。

那么最简单的方法是什么?

谢谢你的帮助。

最佳答案

考虑到该练习固有的“复制和粘贴“继承””特性,我建议不要沿用修改样式的方法,如果您要针对多个操作系统(甚至是Windows 7和Windows 8),这将成为一个问题。 X)。相反,请尝试以下操作:

1)对于要打开图标的每个项目,请将其TextAlign属性更改为taTrailing并在其Text上填充四个前导空格字符。

2)在每个选项卡的表单中添加一个TImage,然后根据需要将小的位图加载到其中。

3)通过(例如)将其TagObject属性分配给表单的OnCreate处理程序中的图像控件,从而将每个选项卡项与其图像相关联:

procedure TForm1.FormCreate(Sender: TObject);
begin
TabItem1.TagObject := Image1;
//...
end;


4)为每个选项卡项的 OnPaint事件分配以下共享事件处理程序:

procedure TForm1.TabItemPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
var
B: TBitmap;
SrcR, DstR: TRectF;
TabItem: TTabItem;
begin
TabItem := (Sender as TTabItem);
B := (TabItem.TagObject as TImage).Bitmap;
SrcR := RectF(0, 0, B.Width, B.Height);
DstR := SrcR;
DstR.Fit(RectF(ARect.Left, ARect.Top, ARect.Left + ARect.Height, ARect.Bottom));
if not TabItem.IsSelected then DstR.Offset(0, 1);
Canvas.DrawBitmap(B, SrcR, DstR, 1);
end;

关于delphi - 在Firemonkey中将图标添加到TTabControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com