我有﹐不過不完全正確(在重繪時會變為黑色)﹐代碼如下﹕
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;
只是怎么樣才能讓它重繪時保持顏色不變﹐哪位高手指點一下﹖
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;
只是怎么樣才能讓它重繪時保持顏色不變﹐哪位高手指點一下﹖
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;
一樣的效果﹐只要動態改變每一行為不同的顏色就不行了﹐在選擇項目(即重繪項目)時﹐所操作項目就變為最后一次改變的顏色了﹐沒有達到不同行顯示不同顏色的目的﹐請再指教指教﹗