Delphi中,指定PageControl的Tabsheet标题颜色,如通过procedure TXX.PgcGetColour(PgcIndex:integer;TSColour:string);做接口去改变标签颜色,然后不会随着Active而改变了。不指定PageControl的TabSheet标题颜色的时候,clblack 黑色;
指定PageControl的TabSheet标题颜色的时候,有clRed和clGreen 红色和绿色,指定后不随Active而变化了。
脑袋笨,写不出,求帮忙。我知道
ownerDraw=true;
procedure TFrm_XXX.pgc1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
if Active then
begin
Control.Canvas.Font.Color:=clGreen;
end;
Control.Canvas.TextOut((Rect.Left+4),(Rect.Top+4),pgc1.Pages[TabIndex].Caption);
end;DelphiPageControl
指定PageControl的TabSheet标题颜色的时候,有clRed和clGreen 红色和绿色,指定后不随Active而变化了。
脑袋笨,写不出,求帮忙。我知道
ownerDraw=true;
procedure TFrm_XXX.pgc1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
if Active then
begin
Control.Canvas.Font.Color:=clGreen;
end;
Control.Canvas.TextOut((Rect.Left+4),(Rect.Top+4),pgc1.Pages[TabIndex].Caption);
end;DelphiPageControl
TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
Control.Canvas.Font.Color:=pgcGetColor(TabIndex);
Control.Canvas.TextOut((Rect.Left+4),(Rect.Top+4),pgc1.Pages[TabIndex].Caption);
end; function pgcGetColor(pgcIndex:integer):TColor;
begin
Result:=StringToColor(Arr[pgcIndex]); {Arr定义的string类型数组}
end;procedure TFrm_XXX.FormCreat(Sender: TObject);
var
i: integer;
begin
setlength(Arr,8);
for i:=0 to 7
begin
Arr[i]:='clblack';
end;
end;