• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:delphiにて(listviewでのDrag&Drop))

DelphiのListViewでDrag&Dropによる項目移動方法

このQ&Aのポイント
  • Delphiのlistview(vsReport)で、Drag&Dropを使用して項目を上下に移動させる方法がわかりません。
  • ListView上の右クリックのポップアップメニューで項目を一つ上に、一つ下に移動させる方法も試してみましたがうまく機能しません。
  • DelphiのListViewで項目のドラッグアンドドロップ移動の方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.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;

yo-ya
質問者

お礼

遅れましてもうしわけありませんでした。 回答、ありがとうございました。 精進します…。 が、 また詰まったときには質問させていただくことになるのでしょう…(^^;)。 ありがとうございました。

関連するQ&A