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 Einfärben der TABs bei einem PageControl? (https://www.delphipraxis.net/1562-einfaerben-der-tabs-bei-einem-pagecontrol.html)

Sharky 9. Dez 2002 09:06


Einfärben der TABs bei einem PageControl?
 
Hai,

gibt es eine Möglichkeit die TABs eines Pagecontrols einzufrägen?

z.B. Das erste in Blau und das zweite in Rot?

Aber nur die TABs, nicht die eigenliche Seite.

Christian Seehase 9. Dez 2002 10:32

Moin Sharky,

das geht.
Schau Dir doch mal die Doku zum Ereignis OnDrawTab an.
Du musst dann allerdings auch den Text selber ausgeben, aber das dürfte dann ja nicht das Problem sein.

Sharky 9. Dez 2002 13:09

Moin Christian,

danke für die Info..... Aber leider funktioniert es nicht so richtig.

Ich habe mit dem ganzen Canvas-Zeug noch nicht gross gearbeitet.
Ich kann zwar den Text ausgeben. Aber die Farbe des TABs kann nicht nicht ändern.

Bei mir werden immer beide TABs geändert. Aber das liegt sicher wieder an einem Fehler in meinem Verstand :lol:

Hast Du eventuell ein Beispiel für mich?

Christian Seehase 9. Dez 2002 13:45

Moin Sharky,

ich hab' mal versucht ein Beispiel hinzubasteln.
Nicht schön, aber geht :mrgreen:

Delphi-Quellcode:
procedure TfrmMAIN.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);

const
  _clTabColors : array [0..1] of TColor = (clRed,clBlue);
  _sTabCaptions : array [0..1] of string = ('Blau','Rot');

begin
  Control.Canvas.Brush.Color := _clTabColors[TabIndex];
  Control.Canvas.FillRect(Rect);
  Control.Canvas.TextOut(Rect.Left+5,Rect.Top+3,_sTabCaptions[TabIndex]);
end;
Nicht zu vergessen die Eigenschaft OwnerDraw des TPageControl's auf true zu setzen ;-)

Es ist übrigens korrekt, dass immer beide Tabs geschrieben werden, besser gesagt immer alle, da diese Routine für alle Tabs der Reihe nach aufgerufen wird.

Sharky 9. Dez 2002 14:18

Bingo. :hello:

Genau so wollte ich das ... Danke Danke Danke.

Aber Geschenke gibt es trotzdem keine :lol: :spin: :chat:

cYaONE 7. Jul 2003 18:07

Re: Einfärben der TABs bei einem PageControl?
 
Funktioniert die Lösung von oben bei euch?

Ich habe keine OwnerDraw Eigenschaft!
Und das Ereignis existiert bei mir auch net :(

Wie funktioniert das?

cYaONE 7. Jul 2003 18:14

Re: Einfärben der TABs bei einem PageControl?
 
Sorry!

Ich benutze die CLX und da gibt es sowas nicht :(
Gibt es sonst noch eine Lösung unter der CLX die Tabs selbst zu zeichnen?

X-Dragon 14. Jul 2003 14:26

Re: Einfärben der TABs bei einem PageControl?
 
Von CLX hab ich keine Ahnung, aber da bei mir z.B. schon 2 Farben genügen mach ich es einfach so:

Delphi-Quellcode:
TabSheet1.Highlighted := True; //oder False je nach dem :)


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