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

解决方案 »

  1.   

    自己给自己分  Arr:array of string;procedure TFrm_XXX.pgc1DrawTab(Control: TCustomTabControl;
      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;