5
私はListViewのためのDelphiのドラッグアンドドロップシステムには全く新しいです。私はListViewの項目をドラッグアンドドロップする簡単なソリューションをインターネット上で見つけました。問題は、コードが最初の列をドラッグするだけで表示され、が表示され、と表示され、行全体がドラッグされてしまうことです。Delphi ListViewドラッグドロップ全体行
次の画像では、取得した内容と取得したい内容を確認できます。
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/en/Customizing_Drag_and_Drop_with_a_Drag_Object –