颜色是不能改的,但可以高亮显示
以下程序在pagechange添加:
procedure tform1.pageactive(pagename:tpagecontrol);
var
i:integer;
sheet:ttabsheet;
begin
for i:=0 to pagename.PageCount-1 do
  begin
  sheet:=pagename.Pages[i];
  if sheet=pagename.ActivePage then
    sheet.Highlighted:=true
  else
    sheet.Highlighted:=false;
  end;
end;

解决方案 »

  1.   

    颜色是不能改的,但可以高亮显示
    以下程序在pagechange添加:
    procedure tform1.pageactive(pagename:tpagecontrol);
    var
    i:integer;
    sheet:ttabsheet;
    begin
    for i:=0 to pagename.PageCount-1 do
      begin
      sheet:=pagename.Pages[i];
      if sheet=pagename.ActivePage then
        sheet.Highlighted:=true
      else
        sheet.Highlighted:=false;
      end;
    end;
      

  2.   

    to johnsonrao(johnson) 
    好像不行吧,能给个源码看看吧?谢谢
    TO cg1120(代码最优化-§雨后看见彩虹……§) 因为我的FORM是加了颜色的,如果PAGECONTROL的标题不加的话,看起来就不美观了
    ,谢谢
      

  3.   

    to johnsonrao(johnson) 
    好像不行吧,能给个源码看看吧?谢谢
    TO cg1120(代码最优化-§雨后看见彩虹……§) 因为我的FORM是加了颜色的,如果PAGECONTROL的标题不加的话,看起来就不美观了
    ,谢谢
      

  4.   

    可以,给它加个Canvas就不会受限制了。
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
         with TCanvas.Create do
         begin
              Handle:=GetDC(PageControl1.Handle);
              Brush.Color:=clBlue;
              Pen.Color:=clRed;
              Rectangle(0,0,50,20);
              Free;
         end;
    end;
      

  6.   

    那TITLE上的字没有了,用不用OWNERDRAW属性呢假如你碰上这种,你会怎么做呢,能否再详细点.非常感谢
      

  7.   

    而且能否重划多外TITLE??好象也没有立体感了??有什么可以让TITLE的颜色和当前页的颜色一致,而且能够显TITLE的标题,并且能有层次感?再次感谢
      

  8.   

    层次感用外框线条表示出来
    文字用TextOut输出
      

  9.   

    层次感用外框线条表示出怎么做?(代码有吗?)
    我用TEXTOUT时,一排TITLE都被写了,看起来就象一个LABEL谢谢
      

  10.   

    这是一个模拟Button的层次效果,其它的就靠你自己了。          R:=Rect;
              Brush.Color:=clInfoBk;
              FillRect(R);
              Pen.Color:=clWhite;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Left,R.Top);
              LineTo(R.Right-1,R.Top);
              Pen.Color:=clGray;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Right-1,R.Bottom-1);
              Canvas.LineTo(R.Right-1,R.Top);
              Pen.Color:=clBlack;
              MoveTo(R.Left-1,R.Bottom);
              LineTo(R.Left-1,R.Top-1);
              LineTo(R.Right,R.Top-1);
              LineTo(R.Right,R.Bottom);
              LineTo(R.Left-1,R.Bottom);TextOut可以用很多次,每次都可以定位输出一段文字。(注意底色)剩下的自己动手吧。
      

  11.   

    这是一个模拟Button的层次效果,其它的就靠你自己了。          R:=Rect;
              Brush.Color:=clInfoBk;
              FillRect(R);
              Pen.Color:=clWhite;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Left,R.Top);
              LineTo(R.Right-1,R.Top);
              Pen.Color:=clGray;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Right-1,R.Bottom-1);
              Canvas.LineTo(R.Right-1,R.Top);
              Pen.Color:=clBlack;
              MoveTo(R.Left-1,R.Bottom);
              LineTo(R.Left-1,R.Top-1);
              LineTo(R.Right,R.Top-1);
              LineTo(R.Right,R.Bottom);
              LineTo(R.Left-1,R.Bottom);TextOut可以用很多次,每次都可以定位输出一段文字。(注意底色)剩下的自己动手吧。
      

  12.   

    这是一个模拟Button的层次效果,其它的就靠你自己了。          R:=Rect;
              Brush.Color:=clInfoBk;
              FillRect(R);
              Pen.Color:=clWhite;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Left,R.Top);
              LineTo(R.Right-1,R.Top);
              Pen.Color:=clGray;
              MoveTo(R.Left,R.Bottom-1);
              LineTo(R.Right-1,R.Bottom-1);
              Canvas.LineTo(R.Right-1,R.Top);
              Pen.Color:=clBlack;
              MoveTo(R.Left-1,R.Bottom);
              LineTo(R.Left-1,R.Top-1);
              LineTo(R.Right,R.Top-1);
              LineTo(R.Right,R.Bottom);
              LineTo(R.Left-1,R.Bottom);TextOut可以用很多次,每次都可以定位输出一段文字。(注意底色)剩下的自己动手吧。
      

  13.   

    OWNERDRAW:=trueprocedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    begin
      if Active then Control.Canvas.Font.Color:=clRed;
      Control.Canvas.TextOut(rect.left+4,rect.top+4,PageControl1.Pages[TabIndex].Caption);
    end;