Also, mir ist da kein spezieller Befehl zum Verschieben bekannt (Listview.exchange funktioniert nicht mit ListviewItems).
Du musst es also selber erledigen:
Delphi-Quellcode:
procedure TForm19.ListView1DragDrop(Sender: TObject; const Data: TDragObject;
const Point: TPointF);
var
obj: IControl;
idx, add: Integer;
lvi: TListviewItem;
f: TFMXObject;
begin
obj := ObjectAtPoint (Screen.MousePos);
if obj <> NIL then begin
Idx := GetIndexATPos (ListView1, Point);
if Idx <> -1 then begin
// verschieben vor oder nach aktueller Selektion
if TListViewItem (Data.Source).Index > Idx then begin
add := 1;
end else begin
add := 0;
inc (idx);
end;
ListView1.BeginUpdate;
lvi := Listview1.Items.AddItem(idx);
lvi.Text := TListViewItem (Data.Source).Text;
lvi.Detail := TListViewItem (Data.Source).Detail;
lvi.bitmap.Assign(TListViewItem (Data.Source).bitmap);
Listview1.Items.Delete (TListViewItem (Data.Source).Index+add);
ListView1.EndUpdate;
Listview1.Selected := lvi;
end;
end;
end;