- ベストアンサー
DelphiのListViewでDrag&Dropによる項目移動方法
- Delphiのlistview(vsReport)で、Drag&Dropを使用して項目を上下に移動させる方法がわかりません。
- ListView上の右クリックのポップアップメニューで項目を一つ上に、一つ下に移動させる方法も試してみましたがうまく機能しません。
- DelphiのListViewで項目のドラッグアンドドロップ移動の方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 もっと上手いやり方があるかも知れませんが、ListViewのMultiSelectをFalse、RowSelectをTrue、DragModeをdmAutomaticにして、下記の感じでそれっぽくなりましたよ。 procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source = Sender) and (ListView1.Selected <> nil ) and ([htOnIcon,htOnItem,HtOnLabel] >= ListView1.GetHitTestInfoAt(x,y)); end; procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer); var cItem,mItem : TListItem; begin mItem := ListView1.Selected; cItem := ListView1.GetItemAt(x,y); if cItem <> nil then begin cItem := ListView1.Items.Insert(cItem.Index); cItem.Assign(mItem); cITem.Focused :=True; cItem.Selected :=True; mItem.Delete; end; end;
お礼
遅れましてもうしわけありませんでした。 回答、ありがとうございました。 精進します…。 が、 また詰まったときには質問させていただくことになるのでしょう…(^^;)。 ありがとうございました。