![]() |
Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo zusammen,
ich möchte einem aktiven Tab eine andere Farbe zuweisen. Eine Möglichkeit habe ich gefunden. --> Eigenschaft "Highlighter" auf True setzen... Sieht aber net so toll aus :freak: Ist es denn ohne sehr großen Aufwand möglich, z.B. den AKTIVEN Tabsheet weiss einzufärben? Gruß Jürgen |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo
Frag doch mal Google: |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Editier bitte mal deinen Link... So, wie er jetzt ist, ist er nutzlos.
|
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Danke für den Tip. Aber das was ich möchte habe ich dort leider nicht gefunden. :wall:
Ich habe mich vielleicht auch nicht ganz deutlich ausgedrückt: Nicht die gesamte Seite soll eingefärbt werden, sondern nur der Reiter. Im Prinzip genauso wie wenn man den Hightlighter auf true setzt. Grüsse Jürgen |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo kannst du vieleicht hiermit was anfangen. :?:
Delphi-Quellcode:
Gruß Bob68
PROCEDURE TForm1.TabControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; CONST Rect: TRect; Active: Boolean); BEGIN WITH Control.Canvas DO BEGIN IF Active = true THEN BEGIN Brush.Color := clred; Font.Color := clblack; Font.Style := [fsbold]; END ELSE BEGIN Brush.Color := clLime; Font.Color := clblack; END; TextOut(Rect.Left + 4, Rect.Top + 4, TabControl1.Tabs[TabIndex]); END; End; |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo Bob68!
Vielen, vielen Dank! Das sieht schon sehr gut aus! Allerdings bekomme ich es mit Delphi 2005 PE (noch) nicht ganz ans Laufen! Anstatt TabControl verwende ich PageControl.... In deinem Code schreibst du:
Delphi-Quellcode:
Was muss ich anstelle von TabControl1.Tabs verwenden???
TextOut(Rect.Left + 4, Rect.Top + 4, TabControl1.Tabs[TabIndex]);
Klar, erst einmal PageControl1. ????? Ich habe es probiert mit PageControl1.ActivePage und PageControl1.ActivePageIndex Bei ersterem kommt der Fehler: [Fehler] rechner.pas(1509): E2149 Klasse besitzt keine Standardeigenschaft Verwende ich ActivePageIndex kommt Fehler: [Fehler] rechner.pas(1509): E2016 Array-Typ erforderlich Kann mir hier abschließend jemand weiterhelfen? Viele Grüße Jürgen |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo Jürgen versuche es mal mit:
Delphi-Quellcode:
Gruß
TextOut(Rect.Left + 4, Rect.Top + 4,PageControl1.Pages[TabIndex].Caption);
Bob68 :wink: |
Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
Hallo Bob68,
Super!!! Nun funzt alles so wie ich es gern haben möchte! :thumb: :bouncing4: :firejump: :bounce1: :dancer: Noch mal herzlichen Dank!!! Der Vollständigkeitshalber hier meine Umsetzung:
Delphi-Quellcode:
Dann das ganze dem "OnDrawTab" Ereignis zugeordnet und die Eigenschaft "OwnerDraw" auf "True" gesetzt und alles funzt wie gewünscht! :hello:
PROCEDURE TForm1.PageControl1OnDrawTab(Control: TCustomTabControl;
TabIndex: Integer; CONST Rect: TRect; Active: Boolean); BEGIN WITH Control.Canvas DO BEGIN IF Active = true THEN BEGIN Brush.Color := clred; Font.Color := clblack; Font.Style := [fsbold]; END ELSE BEGIN Brush.Color := clLime; Font.Color := clblack; END; TextOut(Rect.Left + 4, Rect.Top + 4,PageControl1.Pages[TabIndex].Caption); END; End; Gruß Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz