Ohne es zu testen würde ich vermuten, dass es an der Zeile DefaultDraw := false
liegt. Das muss dann bei den anderen Spalten wieder auf true
gesetzt werden wenn ich mich nicht täusche.
Erstmal Danke für die Antwort. Wenn ich das richtig verstanden habe, hätte dann folgender Code das Problem beseitigen müssen:
Delphi-Quellcode:
Procedure ...
Var
tmpRect : TRect;
iWidth, i : Integer;
tmpTextOut : String;
Begin
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;
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;
DefaultDraw:=(SubItem <> 2); // CustomDraw in Abhängigkeit von der Spalte setzen...
// Wie empfohlen also alle außer Spalte 2 auf True gesetzt.
End;
Leider bringt das (noch) nicht das gewünschte Ergebnis.
Gruß, Alex