Guten Abend zusammen,
ich benutze zur Zeit ein TListView mit 3 SubItems.
Nun möchte ich, wenn der Text vom mittleren SubItem = "Test" ist, dass dieses eine andere Farbe bekommt.
Allerdings bekomme ich es nicht hin.
Hier mal mein aktueller Stand:
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if SubItem = 1 then
begin
if Item.SubItems.Strings[1] = 'Test' then
begin
Sender.Canvas.Brush.Color := TColor($CCFFCC);
end
else
begin
Sender.Canvas.Brush.Color := TColor($CCCCFF);
end;
end
else
begin
Sender.Canvas.Brush.Color := clWindow;
end;
end;
So wie es jetzt ist, werden jedoch alle 3 SubItems mit der Farbe $CCFFCC versehen.
Wenn ich auf SubItem = 2 prüfe, sind die letzten beiden in der Farbe.
Und bei SubItem = 3 nur das Letzte.
Ich verstehe den Zusammenhang von SubItem nicht.
Ich bin davon ausgegangen, das SubItem das aktuelle SubItem ist und das bei 3 SubItems das Event 3 mal aufgerufen wird.
Deshalb war meine Überlegung, dass wenn SubItem = 1 ist (erstes SubItem = Index 0) nur das Mittlere eine andere Farbe bekommt.
Aber dem ist nicht so.
Könntet ihr mich aufklären?