我有﹐不過不完全正確(在重繪時會變為黑色)﹐代碼如下﹕
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
  //State:=[cdsIndeterminate,cdsDefault];
  //Stage:=cdPostErase;
  ListView1.Canvas.Font.Color:=clwhite;
  ListView1.Canvas.Brush.Color:=col;
end;
只是怎么樣才能讓它重繪時保持顏色不變﹐哪位高手指點一下﹖

解决方案 »

  1.   

    试试这个:
    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
       if Item.Selected then
       begin
          listview1.Canvas.Brush.Color :=clred;
          listview1.Canvas.Font.color:=clblack;
          listview1.Canvas.TextOut(item.Left,item.Top,item.Caption);
       end;
    end;
      

  2.   

    To Zhouzx:
    一樣的效果﹐只要動態改變每一行為不同的顏色就不行了﹐在選擇項目(即重繪項目)時﹐所操作項目就變為最后一次改變的顏色了﹐沒有達到不同行顯示不同顏色的目的﹐請再指教指教﹗