Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPageControl andere Farbe (https://www.delphipraxis.net/6132-tpagecontrol-andere-farbe.html)

Florian H 30. Jun 2003 20:05


TPageControl andere Farbe
 
Hi,

wie kann ich bei einem TPagecontrol die hintergrundfarbe der Tabs ändern?
Weil da hats keine Coloreigenschaft und wenn ich von TForm die farbe ändere dann ändert sich auch die Farbe der Seiten des TP.c. aber eben nicht die der Tabs und das sieht dann blöd aus!
Es gibt da ja ownerDraw aber da muss ich die ganze zeichenroutine übernehmen das ist auch doof weil das nicht naatlos klappt!

Kann man da nicht irgendwie wass machen dass ich nur die hintergrundfarbe ändere und der rest wieder delphi macht?

gruß flo

Jens Schumann 30. Jun 2003 20:18

Hallo Florian,
probier's mal damit:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    procedure PageControl1DrawTab(Control: TCustomTabControl;
      TabIndex: Integer; const Rect: TRect; Active: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
  TabCaption : String;
  TabRect   : TRect;
begin
  TabRect:=Rect;
  InflateRect(TabRect,-4,-2);
  TabCaption:=TPageControl(Control).Pages[TabIndex].Caption;
  With Control.Canvas do
    begin
    Case TabIndex of
      0 : Brush.Color:=clRed;
      1 : Brush.Color:=clLime;
      2 : Brush.Color:=clBlue;
      else
        Brush.Color:=clBtnFace;
      end;
    Brush.Style:=bsSolid;
    FillRect(Rect);
    Brush.Style:=bsClear;
    DrawText(Handle,PChar(TabCaption),-1,TabRect,dt_singleline+dt_left+dt_vcenter);
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  PageControl1.OwnerDraw:=True;
end;

end.

Florian H 30. Jun 2003 21:22

cool, danke!

Piro 24. Nov 2004 12:47

Re: TPageControl andere Farbe
 
Moin habe mir mal gerade diesen beitrag angesehen. Wie kann man denn jetzt die Tabbezeichnung selbst definieren. Irgendwie bekomme ich das nicht hin.

Danke.

Jens Schumann 25. Nov 2004 15:23

Re: TPageControl andere Farbe
 
Hallo,
Delphi-Quellcode:
TabCaption:=TPageControl(Control).Pages[TabIndex].Caption;
sollte die Lösung sein

trolleybus 6. Nov 2011 15:06

AW: TPageControl andere Farbe
 
Wau, danke! Hat mir sehr geholfen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz