两棵 Virtual Treeview 树,实现相互拖动,如何将节点DATA 传给对方!!!
   急!!请帮忙!!

解决方案 »

  1.   

    先设Treeview1.DragMode :=[dmAutomatic]
    再在TreeView2的 OnDragOver事件中令Accept:=true;
    然后在TreeView2的DragDrop事件编程实现你的拖动、COPY功能。
    procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var a:ttreenode;
    begin
      a:=TreeView1.GetNodeAt(X, Y);
      TreeView1.Selected.MoveTo(a,naInsert)
    end;procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
     Accept:=Source=Sender;
    end;
      

  2.   

    lzy6204能不能写得通用一些,他说的是两树之间的相互拖动撒
      

  3.   

    主要还是 id 字段, Caption 那个, 一个要删, 一个要加, 既然是 virtual 的 treeview 那你用什么存 Node? DataSet? 记得在完成操作后要重画一下
      

  4.   

    是 Virtual Treeview 控件, 不是TTreeview 控制!
    Virtual Treeview 控件可以在节点自定义数据结构(即DATA),移动时如何将一颗树的节点的DATA移植到另一颗树的相应节点!
      

  5.   

    to: comanche(太可怕) 
      type
      PNodeData = ^TNodeData;
      TNodeData = record
        Caption: WideString;
      end;
    ----------------------------
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      Tree1.NodeDataSize := SizeOf(TNodeData);
      Tree1.RootNodeCount := 30;
      Tree2.NodeDataSize := SizeOf(TNodeData);
      Tree2.RootNodeCount := 30;
    end;------------------------Tree1的Node 移到 Tree2.Node, 希望Data := Sender.GetNodeData(Node);也带过去!!
      

  6.   

    请高手们就用 Virtual Treeview 的DEMO中 OLE.dpr 做过例子!谢谢!
      

  7.   

    高手们先帮我把两个TreeView互拖的问题解决一下撒,分不够我再给撒,很急的!
      

  8.   

    楼上的 lzy6204(为了忘却的记忆) 作法正确, 只不过他那个不是 virtual 的, 你这个得要手动的把 Data 从这个 数组也好, DataSet 也好, copy 过去, 删除原来 然后 Tree2.RootNodeCount 重设procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var a:ttreenode;
    begin
      a:=TreeView1.GetNodeAt(X, Y);
      从你的数组找到(a.Data), 加到另一数组
      设 NodeCount
    end;
      

  9.   

    to  comanche(太可怕) :
      请问   Virtual Treeview 的: onsavenode,onloadnode事件如何使用!??
      

  10.   

    可以用Virtual Treeview 的 MoveTo 或 CopyTo 函数,也支持“树间”。两棵树的 节点DATA 应该一样才有意义。onsavenode,onloadnode事件在 调用SaveToStream/LoadFormStream保存/恢复
    整棵树时对每个Node触发,也可以用,但用在整树复制更好。
      

  11.   

    to  myy() :
       我现在的 两棵树的 节点DATA 结构一样!   如何用MoveTo 或 CopyTo 函数将DATA也移过来!!
      

  12.   

    “树间”的 MoveTo 我没用过,但是同树中MoveTo时,Data是自动跟着Node的。
      

  13.   

    我现在就是要 “树间”的 MoveTo ,并且Data是自动跟着Node的,我搞了一天,没有搞定
      

  14.   

    有没有人进行“树间”MoveTo 呀!!??
      

  15.   

    MOVETO不就是一边增加,一边删除?
      

  16.   

    谁都知道 “MOVETO不就是一边增加,一边删除?”现在问题 不是如何MOVETO节点,而是Data是自动跟着Node,一起移动!