Mega Code Archive

 
Categories / Delphi / VCL
 

Drag & Drop multiple items within a TListView

Title: Drag & Drop multiple items within a TListView? { ListView1.DragMode := dmAutomatic } procedure TForm1.ListView1DragDrop(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 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.ListView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Sender = ListView1; end;