实现效果:隔行换背景色,字体根据特定条件加粗,变绿色
procedure TMainFrm.GlobalDataCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var i: integer; begin i:= (Sender as TListView).Items.IndexOf(Item); if odd(i) then sender.Canvas.Brush.Color:= $02FFFFFF else sender.Canvas.Brush.Color:= $02EFEFEF; Sender.Canvas.FillRect(Item.DisplayRect(drIcon)); if Item.SubItems.Strings[2]='√' then begin GlobalData.Canvas.Font.Color:=clGreen; GlobalData.Canvas.Font.Style:=[fsBold]; end; DefaultDraw:=true; end;