Ich bin ziemlich neu zu dem Ziehen und Löschen System in Delphi für ListView. Ich habe eine einfache Lösung im Internet gefunden, um Elemente in ListView zu ziehen und zu löschen. Das Problem ist, dass der Code nur das Ziehen der ersten Spalte zeigt und ich möchte anzeigen und die gesamte Zeile ziehen.Delphi ListView Drag-Drop ganze Reihe
Sie können auf dem folgenden Bild sehen, was ich bekomme und was ich bekommen möchte.
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;
self.ListView1.DragMode := dmAutomatic;
http://docwiki.embarcadero.com/RADStudio/Seattle/de/Customizing_Drag_and_Drop_with_a_Drag_Object –