Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hintergrundfarbe des AKTIVEB Tabsheets ändern (https://www.delphipraxis.net/52560-hintergrundfarbe-des-aktiveb-tabsheets-aendern.html)

juergen 30. Aug 2005 22:47


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

API 30. Aug 2005 23:14

Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
 
Hallo

Frag doch mal Google:


Daniel G 30. Aug 2005 23:19

Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
 
Editier bitte mal deinen Link... So, wie er jetzt ist, ist er nutzlos.

juergen 30. Aug 2005 23:34

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

Bob68 31. Aug 2005 06:50

Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
 
Hallo kannst du vieleicht hiermit was anfangen. :?:

Delphi-Quellcode:
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;
Gruß Bob68

juergen 31. Aug 2005 19:41

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:
TextOut(Rect.Left + 4, Rect.Top + 4, TabControl1.Tabs[TabIndex]);
Was muss ich anstelle von TabControl1.Tabs verwenden???
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

Bob68 1. Sep 2005 05:37

Re: Hintergrundfarbe des AKTIVEB Tabsheets ändern
 
Hallo Jürgen versuche es mal mit:

Delphi-Quellcode:
TextOut(Rect.Left + 4, Rect.Top + 4,PageControl1.Pages[TabIndex].Caption);
Gruß
Bob68 :wink:

juergen 1. Sep 2005 22:13

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:
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;
Dann das ganze dem "OnDrawTab" Ereignis zugeordnet und die Eigenschaft "OwnerDraw" auf "True" gesetzt und alles funzt wie gewünscht! :hello:

Gruß
Jürgen


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