About the author
In the OnDragDrop event of a TListView, the source item and the destination item can be obtained thus:
procedure TFormX.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer); var LSourceItem, LDestItem: TListItem; LSourceIndex, LDestIndex: Integer; begin LSourceItem := ListView1.Selected; LDestItem := ListView1.GetItemAt(X, Y); LSourceIndex := ListView1.Items.IndexOf(LSourceItem); LDestIndex := ListView1.Items.IndexOf(LDestItem); // ... other code ... end;