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.