首先将TreeView及ListView的DragMode属性设为:dmAutomatic;其后代码如下:
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := False;
if (source is TTreeView) or (source is TListView) then
Accept := True;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
tSrcNode, tDesNode: TTreeNode;
begin
tDesNode := TTreeView(Sender).GetNodeAt(X, Y);
if Source is TTreeView then
begin
tSrcNode := TTreeView(Sender).Selected;
tSrcNode.MoveTo(tDesNode, naAddChild);
end;
if Source is TListView then
begin
TreeView1.Items.AddChild(tDesNode, ListView1.Selected.Caption);
ListView1.Selected.Delete;
self.TreeView1.FullExpand;
end;
end;
procedure TForm1.ListView1DragOver(Sender, Source: TObject; X,