AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Caption-Text eines TabSheet-Reiters farbig ausgeben

Ein Thema von r29d43 · begonnen am 20. Mär 2012 · letzter Beitrag vom 21. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#1

Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 13:59
Hi,

gibt es eigentlich eine plus minus einfache Möglichkeit, den Caption-Text eines TabSheet-Reiters farbig o. unterstrichen ausgeben zu können?

Ich habe zwei TabSheets in einem PageControl und möchte je nach "kritischem Inhalt" eines der TabSheets dessen TabSheet-Caption dann in roter Farbe oder unterstrichen outputten. Natürlich könnte man zur Not diesbezüglich auch noch irgendwelche visuellen Info-Flags sonstwohin setzen, imo wäre das mit einer farbigen TabSheet-Caption für mich jetzt aber das eleganteste.

Mit der TabSheet-Property "Font.Color" geht es jedenfalls leider nicht.

(Als Notlösung hätte ich hier sonst nur noch, für diese Caption primär nur Blanks einzusetzen und den eigentlichen Caption-Text dann mit einem darübergesetzten TStaticText-Label entsprechend zu simulieren.)

Thx im Voraus.
Gruß
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 14:20
Mit dem Delphi-eigenen TPageControl dürfte das was Größeres werden. Aber es gibt massenweise Fremdkomponenten, die das können.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 14:21
ich weiß nicht wie es unter Turbodelphi aussieht

OwnerDraw:=true;

Delphi-Quellcode:
procedure TForm2.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
   PageControl1.Canvas.Brush.Color := clWhite;
   PageControl1.Canvas.FillRect(Rect);
   if Tabindex=1 then
      begin
        if PageControl1.ActivePageindex=TabIndex then PageControl1.Canvas.Font.Color := clRed else PageControl1.Canvas.Font.Color := clblue;
        PageControl1.Canvas.Font.Style := [fsBold,fsUnderline]
      end;
    PageControl1.Canvas.Textout(rect.Left + 2,rect.Top + 2,PageControl1.Pages[Tabindex].Caption)

end
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 14:56
OwnerDraw:=true;
Mit Owner-Drawing machst du aber das Theming platt, oder?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 15:05
sieht so aus ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
185 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 15:15
Mit dem Delphi-eigenen TPageControl dürfte das was Größeres werden. Aber es gibt massenweise Fremdkomponenten, die das können.
Ich werfe einfach mal wieder die LMD-Tools Freeware Edition
in den Raum. Könnte mir vorstellen, dass das Vorhaben mit der entsprechenden
Kompo daraus recht einfach umzusetzen ist...

http://lmd.de/download/index.php#LMD

Gruß
Steku
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 15:49
Thx all.


@Bummi, ja klappt auch mit Turbo-Delphi, danke.



Was hat es eigentlich mit diesem Theming auf sich? Was besonderst wichtiges? War schon eine etwas längere Zeit nicht mehr hier und bin deswegen nicht mehr ganz auf dem Laufenden.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 16:09
Was hat es eigentlich mit diesem Theming auf sich? Was besonderst wichtiges? War schon eine etwas längere Zeit nicht mehr hier und bin deswegen nicht mehr ganz auf dem Laufenden.
Seit XP gibt's ja Themes/visual styles (a.k.a. Teletubbie-/Playskool-/...-Look ), d.h. Controls haben nicht mehr zwangsweise die Windows95-Optik. Vergleiche mal die beiden PageControls auf dem Screenshot: Das linke hat wegen OwnerDrawing den Classic-Look, während das rechte ein stinknormales PageControl ist und demzufolge gethemed ist:
themedtabs.png
Uli Gerhardt
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 20. Mär 2012, 18:38
Seit XP gibt's ja Themes/visual styles (a.k.a. Teletubbie-/Playskool-/...-Look ), d.h. Controls haben nicht mehr zwangsweise die Windows95-Optik...

Ja, diese Sache kenn ich auch noch. Dachte mir nachher auch schon minimal irgendwo, dass es damit was zu tun haben könnte. (Ist auch schon extrem lange her, dass ich damit mal überhaupt was mit zu tun hatte).

In meinem TabSheet-Caption-Fall ist dieses dann wegfallende Theming wegen der nur sehr kleinen davon betroffenen Fläche allerdings auch nicht so tragisch, imo. Wird wohl kaum auffallen, dass da kein Gradient mehr als Caption-Hintergrund existiert. Und von daher: Die Vorteile dieser OwnerDraw-Methode überwiegen hier mE also schon ein bisschen.
  Mit Zitat antworten Zitat
mz23
(Gast)

n/a Beiträge
 
#10

AW: Caption-Text eines TabSheet-Reiters farbig ausgeben

  Alt 21. Mär 2012, 06:35
ich weiß nicht wie es unter Turbodelphi aussieht

OwnerDraw:=true;

Delphi-Quellcode:
procedure TForm2.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
   PageControl1.Canvas.Brush.Color := clWhite;
   PageControl1.Canvas.FillRect(Rect);
   if Tabindex=1 then
      begin
        if PageControl1.ActivePageindex=TabIndex then PageControl1.Canvas.Font.Color := clRed else PageControl1.Canvas.Font.Color := clblue;
        PageControl1.Canvas.Font.Style := [fsBold,fsUnderline]
      end;
    PageControl1.Canvas.Textout(rect.Left + 2,rect.Top + 2,PageControl1.Pages[Tabindex].Caption)

end
Danke Bummi
Schöne Grüße aus -1° Nürnberg (06:32),
Manfred
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 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