PageControl的OwnerDraw设为True
在PageControl的OnDrawTab里画一下试过了码

解决方案 »

  1.   

    xzgyb(老达摩):谢谢指引!!
    将OwnerDraw设为True,它的颜色是变了,可我不知道标签上的字怎么画上去,能告诉我详细一点吗?我是一个初学者,好多东西还不会用,请多多指教!!!
      

  2.   

    不好意思,才看到
    你太客气了,呵呵
    试试这样吧
    procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    var
      TmpRect: TRect;
    begin
      with PageControl1.Canvas do
      begin
        Brush.Color := clBlack;
        Font.Color := clWhite;
        FillRect(Rect);
        TmpRect := Rect;
        OffsetRect(TmpRect, 0, 3);
        DrawText(Handle, PChar(PageControl1.Pages[TabIndex].Caption), -1, TmpRect, DT_CENTER or DT_VCENTER);
      end;
    end;
      

  3.   

    To:xzgyg(老达摩)  
    非常感谢!!!!这20分给您啦
    还有一个问题我想问一下:如何改变popupmenu的背景颜色?
      

  4.   

    不用谢
    改变TPopupMenu的背景色我试了一下,也是用它的OwnerDraw,但不知有没有更好的方法
    如下:
    unit Unit4;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, Menus;type
      TForm1 = class(TForm)
        PopupMenu1: TPopupMenu;
        File1: TMenuItem;
        Nex1: TMenuItem;
        Open1: TMenuItem;
        procedure File1DrawItem(Sender: TObject; ACanvas: TCanvas;
          ARect: TRect; Selected: Boolean);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.File1DrawItem(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; Selected: Boolean);
    begin
      with ACanvas do
      begin
        if Selected then
          Brush.Color := clGreen
        else
          Brush.Color := clRed;
        FillRect(ARect);
        DrawText(Handle, PChar(TMenuItem(Sender).Caption), -1, ARect, DT_CENTER or DT_VCENTER);
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      i: Integer;
    begin
      PopupMenu1.OwnerDraw := True;
      for i := 0 to PopupMenu1.Items.Count - 1 do
        PopupMenu1.Items[i].OnDrawItem := File1DrawItem;
    end;end.
      

  5.   

    老达摩老师:
        能告诉我您的E-mail吗?我的E-mail是[email protected]
    以后请多多指教!!!!!
      

  6.   

    别这么称呼阿
    呵呵
    我学delphi也不长时间
    我基础很差,最近想看看数据结构
    大家一起学把
    我的mail是[email protected]
    oicq: 21310059