DrawItem w ListView

0

mam kod w ListView w zdarzeniu OnDrawItem:

 if odSelected in state then
 begin
   list.Canvas.Brush.Color := clBlack;
   list.Canvas.Font.Color := clWhite
 end
 else if Item.index in [pIndex] then begin
   list.Canvas.Brush.Color := clWhite;
   list.Canvas.Font.Style := [fsBold];
   list.Canvas.Font.Color := clGreen;  end

 else  begin
   list.Canvas.Brush.Color := clWhite;
   list.Canvas.Font.Color := clBlack;
 end ;


   list.Canvas.FillRect(lol);
   list.Canvas.TextOut(Rect.Left, Rect.Top, Item.Caption);       

zaznacza na inny kolor item którego index znam. mam problem z tym ze gdy zmieniam ten pIndex to kolor automatycznie z poprzedniego nie znika tylko musze zaznaczyc ten item, zminimalizowac forme , cokolwiek zeby ten item sie odświeżył i znikła z niego barwa. Nie da sie cos zrobic aby wszystko zmienialo(odświezało) sie samoistnie?

0

Do daj List.Canvas.Repaint ;

0

dadawalem juz list.refresh i list.repaint do np. OnMouseDown ale wtedy lista migocze jak klikam. nie da sie tego zorbic inaczej?

0

ListView1.DoubleBuffered := true ;

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