Listview i kolorowe itemy

0

Ten kod pokoloruje 3 pierwsze itemy w listwiew

with ListView1.Canvas.Brush do
  begin
    case Item.Index of
      0: Color := clYellow;
      1: Color := clGreen;
      2: Color := clRed;
    end;
  end;

a ten kod mimo moich zamierzeń koloruje wszystkie itemy w listview

var i:integer;
begin
    for i:=0 to listview1.Items.Count-1 do
    begin
        if (listview1.Items[i].SubItems[0]='Sobota') or (listview1.Items[i].SubItems[0]='Niedziela') then
       ListView1.Canvas.Brush.Color:=clGreen;
    end;

end;
kod znajduje się w ListView1CustomDrawItem

Jak zrobić aby pokolorowac itmy spełniające warunek w 2 przykładzie?

0

Nie chce mi sięsprawdzać, ale prawdopodobnie chodzi o to, że nie odwołujesz koloru pędzla, tylko na zawsze zostaje zielony. Wystarczy dodać :

 else ListView1.Canvas.Brush.Color:=clBlack;
0

Nie chce mi sięsprawdzać, ale prawdopodobnie chodzi o to, że nie odwołujesz koloru pędzla, tylko na zawsze zostaje zielony. Wystarczy dodać :

 else ListView1.Canvas.Brush.Color:=clBlack;

nie to nie to ponieważ wtedy koloruje cały na czarno wydaje się że trzeba odwołac sie do itema ponieważ jak jest tak
ListView1.Canvas.Brush.Color:=clGreen;
to on ma za zadanie kolorować cały listview a nie poszczególne itemy
wiem że powinienem użyć jeszcze item.index ale nie bardzo wiem gdzie ponieważ
nie ma takiej możliwości (ctrl+spacja)

0
begin
  if (Item.SubItems[0]='Sobota') or (Item[i].SubItems[0]='Niedziela') then
    ListView1.Canvas.Brush.Color:=clGreen;
end;
0
begin
  if (Item.SubItems[0]='Sobota') or (Item[i].SubItems[0]='Niedziela') then
    ListView1.Canvas.Brush.Color:=clGreen;
end;

o dzięki działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1