Einzelnen Beitrag anzeigen

Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

Farbige Schrift beim TPageControl Tab...

  Alt 6. Mai 2011, 22:12
Guten Abend DPler,

ich möchte die Caption eines Tabs von TPageControl rot schreiben. Es ist ausserdem noch zu erwähnen, dass ich das XP Manifest verwende, allerdings müsste das für diesen Thread nicht relevant sein, siehe unten.

Natürlich habe ich rumgesucht und folgendes gefunden:
http://www.delphipraxis.net/152850-s...-des-tabs.html
http://www.delphi-forum.de/topic_TPa...n_53796,0.html

Nun gut, sofort ausprobiert, OwnerDraw auf True und folgende OnDrawTab-Methode:
Delphi-Quellcode:
procedure TForm1.PagesDrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
  Control.Canvas.Font.Color := clRed;
  Control.Canvas.TextOut(Rect.Left, Rect.Top, TPageControl(Control).Pages[TabIndex].Caption);
end;
Funktioniert aber nicht, es erscheint gar kein Text!
Ich habe dann über eine MessageBox-Zeile herausgefunden, dass das OnDrawTab-Ereignis gar nicht erst aufgerufen wird - logisch, dass der Text dann nicht gezeichnet wird.

Also weitergesucht und dann bin ich auf diesen Post gestossen: http://www.delphipraxis.net/19747-re...tml#post498127
Auch ein Repaint löst aber OnDrawTab nicht aus.

Wieso zur Hölle ist das so?

MfG Z4ppy

PS.: Ich habe das Ganze in einem neuen Projekt ohne XP-Manifest getestet, auch dort wird meine Methode nicht aufgerufen.
  Mit Zitat antworten Zitat