怎么将pagecontrol中的tabsheet标题颜色改变,怎么在font中设置颜色都没有效

解决方案 »

  1.   

    pagecontrol的tabsheet标题颜色不能设置的
      

  2.   

    设置OwnerDraw=True,在OnDrawTab事件中写
    procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    var l_cap :String;
        l_rect:Trect;
    begin
      if TabIndex=PageControl1.TabIndex then
      begin
        with PageControl1.Canvas do
        begin
          Brush.Color := clInfoBk;
          FillRect(Rect);
        end;
      end;
      l_cap := PageControl1.Pages[tabindex].caption;
      l_Rect := Rect;
      DrawText(PageControl1.Canvas.Handle,Pchar(l_Cap),Length(l_cap),l_Rect,DT_SINGLELINE or DT_CENTER or DT_VCENTER);
    end;
      

  3.   

    设置OwnerDraw=True,在OnDrawTab事件中写procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    begin
      bmp := TBitmap.Create;
      Control.Canvas.Brush.Color := $00CEE8CA;
      Control.Canvas.FillRect(Rect);
      Control.Canvas.Font.Color := clBlack;
      Control.Canvas.Font.Charset := GB2312_CHARSET;
      Control.Canvas.Font.Size := 9;
      Control.Canvas.Font.Name := '宋体';
      Control.Canvas.TextOut(Rect.Left+10,Rect.Top+4,TPageControl(Control).Pages[TabIndex].Caption);
    end;
      

  4.   

    设置OwnerDraw=True,在OnDrawTab事件中写
    procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    var l_cap :String;
        l_rect:Trect;
    begin
      if TabIndex=PageControl1.TabIndex then
      begin
        PageControl1.Canvas.Font.Color := clBlue;
      end;
      l_cap := PageControl1.Pages[tabindex].caption;
      l_Rect := Rect;
      DrawText(PageControl1.Canvas.Handle,Pchar(l_Cap),Length(l_cap),l_Rect,DT_SINGLELINE or DT_CENTER or DT_VCENTER);
    end;
      

  5.   

    设置OwnerDraw=True,在OnDrawTab事件中写procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    begin
      //Control.Canvas.Brush.Color := $00CEE8CA;
      //Control.Canvas.FillRect(Rect);
      Control.Canvas.Font.Color := clPurple;
      //Control.Canvas.Font.Charset := GB2312_CHARSET;
      //Control.Canvas.Font.Size := 9;
      //Control.Canvas.Font.Name := '宋体';
      Control.Canvas.TextOut(Rect.Left+10,Rect.Top+4,TPageControl(Control).Pages[TabIndex].Caption);
    end;