Dein Hinweis brachte mich aber auf die richtige Spur!
Es liegt am
FontStyle, der aus unerfindlichen Gründen nicht (zurückgesetzt?) wird. Unerfindlich deshalb, weil er durch den Code - für mich ersichtlich - überhaupt nicht angefasst wurde. Folgender Code funktioniert jetzt bei mir jedenfalls:
Delphi-Quellcode:
Procedure ...
Var
tmpRect : TRect;
iWidth, i : Integer;
tmpTextOut : String;
begin
DefaultDraw:=(SubItem <> 2);
If (SubItem = 2) Then
Begin
tmpRect:=Item.DisplayRect(drBounds);
If (cdsFocused In State) And (cdsSelected In State) Then
Begin
Sender.Canvas.Brush.Color := clBlue;
Sender.Canvas.Font.Color := clWhite; // Nur color nicht style wird geändert!
End;
iWidth:=0;
For I:=0 To Pred(SubItem) Do Inc(iWidth, Sender.Column[I].Width);
tmpTextOut:=StringOfChar('*', Length(Item.SubItems[Pred(SubItem)]));
Sender.Canvas.TextOut(tmpRect.Left + iWidth + 1, tmpRect.Top, tmpTextOut);
End
Else
Begin
Sender.Canvas.Font.Style:=[fsItalic];
Sender.Canvas.Font.Style:=[];
End;
End;
Danke nochmal insoweit auch an die Leute von
StackOverflow!
Gruß, Alex