Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Listview mit Firemonkey

  Alt 5. Mai 2016, 21:31
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;
  Mit Zitat antworten Zitat