Zitat von
citybreaker:
... Oder ich versteh den Code nicht. Kann ja auch sein.
Ich versuche es mal zu erklären.
marabu verwendet das Ereigniss
OnCustomDrawSubItem. Dies wird beim zeichen
von jedem einzelen SubItem aufgerufen.
Jetzt prüft er welches SubItem gezeichnet wird 1/2/8 oder 7.
Wenn die SubItem 1/2/8 gezeichnet werden setzt er deren Fontfarbe auf grün.
Wenn SubItem 7 (was übrigens die achte Spalte ist) gezeichnet wird prüft er ob im
Item (Spalte 1, kein SubItem) das Wort "JA" steht und setzt dann die Farbe auf grün und ansonsten auf rot.
Da Du jedoch den Inhal eines SubItems (Spalte 7) prüfe möchtest musst Du auch den Inhalt des SubItems und nicht des Items prüfen
Hier mal der Code wie er für deinen Fall gehen sollte.
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: integer; State: TCustomDrawState; var DefaultDraw: boolean);
begin
with Sender.Canvas do
case SubItem of
1, 2, 8:
Font.Color := clGreen;
6: // Wenn Spalte 7 gezeichnet wird dann...
if Uppercase(Item.SubItems[SubItem - 1]) = 'JA' then // In Spalte 7 steht "JA"..
Font.Color := clGreen
else
Font.Color := clRed;
else Font.Color := clBlack; // Für alle andere SubItems diese Farbe
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"