procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
r: TRect;
i: Integer;
begin
with ListView1.Canvas do
if cdsSelected in State then begin
Brush.Color := clRed;
r := Item.DisplayRect(drLabel);
// Item
FillRect(r);
TextOut(r.Left+2, r.Top, Item.Caption);
// SubItem
for i := 0 to Item.SubItems.Count - 1 do begin
ListView_GetSubItemRect(ListView1.Handle, Item.Index, i+1, LVIR_LABEL, @r);
FillRect(r);
TextOut(r.Left+5, r.Top, Item.SubItems[i]);
end;
DefaultDraw := False;
end;
end;