急求:Delphi中如何进行TreeView之间的拖拽?我在Delphi中只实现了在TreeView里面的拖拽.

解决方案 »

  1.   

    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if (sender as TTreeview).Selected<>nil then
      (sender as TTreeview).BeginDrag(false);
    end;procedure TForm1.TreeView1EndDrag(Sender, Target: TObject; X, Y: Integer);
    var T:Ttreenode;
    begin
      T:=(target as TTreeview).GetNodeAt(x,y);
      if T<>nil then (target as TTreeview).Items.AddChild(T,(sender as TTreeview).Selected.Text);end;procedure TForm1.TreeView2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      if Source is TTreeview then
      accept:=true;
    end;
      

  2.   

    不行咧,Treeview1节点拖拉不到Treeview2中咧
      

  3.   

    用TForm1.TreeView2DragOver和TForm1.TreeView2Dragdrop事件
      

  4.   

    那Treeview2要有根结点才能拖动,如果Treeview2没有根结点怎么办?
      

  5.   

    if T<>nil then (target as TTreeview).Items.AddChild(T,(sender as TTreeview).Selected.Text)
    else
     (target as TTreeview).Items.add(nil,(sender as TTreeview).Selected.Text)