请问如何通过自绘的方法改变 TTabSheet 和 TToolButton 的底色。
目的是想不同颜色的 TTabSheet 或者 TToolButton 来增强软件的可视界面.

解决方案 »

  1.   

    改变Tabsheet的方法
    1.设置pagecontrol的ownerdraw为True
    2.写Pagecontrol的OnDrawTab方法
    procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    begin
      case TabIndex of
        0: control.Canvas.Brush.Color:= clBlue
        1: control.Canvas.Brush.Color:= clRed;
        ...
      end;
      control.Canvas.FillRect(Rect);
    end;
      

  2.   

    改变Toolbutton的底色
    procedure TForm1.ToolBar1CustomDraw(Sender: TToolBar; const ARect: TRect;
      var DefaultDraw: Boolean);
    begin
      sender.Canvas.Brush.Color := clBlue;
      sender.Canvas.FillRect(Arect);
    end;
      

  3.   

    Tabsheet 的颜色是变了,但Caption没有显示出字呀.
      

  4.   

    我用的是笨办法
    Control.Canvas.Brush.Color := RGB(232, 232, 232);
    Control.Canvas.Pen.Color := RGB(232, 232, 232);
    Control.Canvas.Rectangle(Rect); Control.Canvas.TextOut(7, 6, 'tabsheet1');
    Control.Canvas.TextOut(117, 6, 'tabsheet2');
    Control.Canvas.TextOut(230, 6, 'tabsheet3');