title: Delphi: draw selections and mouse-hover effects on ListViewDrawItem
body: <p>I have a code from here: <a href="https://stackoverflow.com/questions/6617058/delphi-canvas-fillrect-in-list-view">Delphi: Canvas.FillRect in List View</a> to paint rows (I use OwnerDraw).</p>
  
  <p>Therefore I need to draw selections and mouse-hover effects. And to draw a normal column resizing effect...</p>
  
  <p>I have a code to move items up and down:</p>
  
  <pre><code>procedure TForm1.ListViewDragDrop(Sender, Source: TObject; X,
    Y: Integer);
  var
    DragItem, DropItem, CurrentItem, NextItem: TListItem;
  begin
    if Sender = Source then
      with TListView(Sender) do
      begin
        DropItem    := GetItemAt(X, Y);
        CurrentItem := Selected;
        while CurrentItem &lt;&gt; nil do
        begin
          NextItem := GetNextItem(CurrentItem, SdAll, [IsSelected]);
          if DropItem = nil then DragItem := Items.Add
          else
            DragItem := Items.Insert(DropItem.Index);
          DragItem.Assign(CurrentItem);
          CurrentItem.Free;
          CurrentItem := NextItem;
        end;
      end;
  end;
  
  procedure TForm1.ListViewDragOver(Sender, Source: TObject; X, Y: Integer;
    State: TDragState; var Accept: Boolean);
  begin
  Accept := Sender = Update_ListBox;
  end;
  </code></pre>
  
  <p>how to draw selections and mouse-hover effects on ListViewDrawItem + column resizing effect?</p>
  
  <p>Thanks!!!</p>