这是在TreeView中的拖放:
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if (sender as ttreeview) = (source as ttreeview) then
  if (sender as ttreeview).DropTarget<>(source as TTreeView).Selected then
    (source as TTreeView).Selected.MoveTo((sender as ttreeview).DropTarget,naAddChild);
end;
procedure TForm1.TreeView1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
   ShowMessage((Sender as TTreeView).Selected.Text);
   if (Sender as TTreeView).DropTarget<>nil then
    ShowMessage((Sender as TTreeView).DropTarget.Text);
end;