procedure TMainForm.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
AText: string;
APoint: TPoint;
icon:TIcon ;
begin
with (Control as TPageControl).Canvas do
begin
icon:=TIcon.Create;
try
ImageList1.GetIcon(TabIndex,icon);
Brush.Color := graphics.clwhite;//TabSheet的颜色
FillRect(Rect);
AText := TPageControl(Control).Pages[TabIndex].Caption;
with Control.Canvas do
begin
APoint.x := (Rect.Right - Rect.Left) div 2 - TextWidth(AText) div 2;
APoint.y := (Rect.Bottom - Rect.Top) div 2 - TextHeight(AText) div 2;
TextRect(Rect, Rect.Left + APoint.x, Rect.Top + APoint.y, AText);
Draw(Rect.Left,3,icon);
end;
finally
icon.Free;
end;
end;
end;
Ticon对象放在窗体的事件上创建比较好,这样些效率不会太好。例子只是描述一个方法 |