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/)
-   -   Caption-Textfarbe eines PageControl TabSheets ändern (https://www.delphipraxis.net/183734-caption-textfarbe-eines-pagecontrol-tabsheets-aendern.html)

Magnitudo 31. Jan 2015 17:16

Caption-Textfarbe eines PageControl TabSheets ändern
 
Hallo zusammen,

ist es möglich den Caption-Texten der TabSheets in einem PageControl verschiedene Farben zuzuweisen ?
Ich habe in einem PageControl 4 TabSheets und möchte die TabSheets im Reiter-Text farblich differenzieren.
Im Objektinspektor kann einem TabSheet eine Farbe einzeln zugewiesen werden,
übernommen wird aber letzten Endes immer die Font-Farbe im PageControl.
Und die ist dann gültig für alle darin befindlichen TabSheets.

Grüße
Thomas

himitsu 31. Jan 2015 18:53

AW: Caption-Textfarbe eines PageControl TabSheets ändern
 
TabSheet ist ausschließlich der Klientbereich im TabControl.
Die Buttons/Tabs gehören aber zum TabControl.

Standardmäßig gibt es das nicht, also müsstest du dich vermutlich selber um das Zeichnen der Tabs kümmern.

Perlsau 31. Jan 2015 19:38

AW: Caption-Textfarbe eines PageControl TabSheets ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Magnitudo (Beitrag 1288427)
Hallo zusammen, ist es möglich den Caption-Texten der TabSheets in einem PageControl verschiedene Farben zuzuweisen ?

Wie Himitsu schon sagte: Die Farbe des Tabulatoren-Textes wird in der Font-Eigenschaft von TPageControl festgelegt, daher hast du da immer dieselbe Farbe. Um eine farbliche Unterscheidung der einzelnen Tabulatoren zu ermöglichen, verwendet man das Property Images. Dort wird die TImageList festgelegt, welche die einzelnen Grafiken für die jeweiligen Tabulatoren enthält. Diese Grafiken kannst du nun farblich gestalten, wie es dir beliebt.

hathor 31. Jan 2015 19:50

AW: Caption-Textfarbe eines PageControl TabSheets ändern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Im PageControl.OnDrawTab:

PC1 ist das PageControl
Delphi-Quellcode:
procedure TForm1.PC1DrawTab(Control: TCustomTabControl; TabIndex: Integer;
  const Rect: TRect; Active: Boolean);
var TabCaption: string;  CaptionX: Integer; CaptionY: Integer;
begin
if Active then
  begin
    Control.Canvas.Brush.Color := clLime;
    Control.Canvas.Font.Color:= clRed;
    Control.Canvas.Font.Style := Control.Canvas.Font.Style + [fsBold];
  end else
  begin
  Control.Canvas.Brush.Color := clBtnFace;
  Control.Canvas.Font.Color:= clBlack;
//hier kann man einen Block von Tabs anders färben, wenn man will
  if TabIndex in [25..30]
   then Control.Canvas.Brush.Color := clSkyBlue;
    Control.Canvas.Font.Style := Control.Canvas.Font.Style - [fsBold];
  end;
  Control.Canvas.FillRect(Rect);
//hier kann man die Tabs umbenennen, wenn man will
with Control.Canvas do
  begin
    TabCaption := INTTOSTR(TabIndex+1);
    CaptionX := Rect.Left + ((Rect.Right - Rect.Left - TextWidth(TabCaption)) div 2);
    CaptionY := Rect.Top + ((Rect.Bottom - Rect.Top - TextHeight('Gg')) div 2);
    FillRect(Rect);
    TextOut(CaptionX, CaptionY, TabCaption);
  end;
end;

Magnitudo 31. Jan 2015 23:39

AW: Caption-Textfarbe eines PageControl TabSheets ändern
 
Vielen Dank für eure Hilfe.
Klappt perfekt :)

Grüße
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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