//按楼主的写法改的
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Source is TTreeView;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
I: integer;
sNode, tNode : TTreeNode;
begin
tNode := TTreeView(Source).GetNodeAt(X, Y);
for I := 0 to TTreeView(Source).SelectionCount-1 do begin
Showmessage(inttostr(i));
sNode := TTreeView(Source).Selections[I];
sNode.MoveTo(tNode, naAddChild);
end;
end;