使用过 Virtual Treeview 控件的高手,请进!!! 在线等待给分!

eastxiang 2004-10-25 09:10:03
两棵 Virtual Treeview 树,实现相互拖动,如何将节点DATA 传给对方!!!
急!!请帮忙!!
...全文
229 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
eastxiang 2004-10-26
  • 打赏
  • 举报
回复
谁都知道 “MOVETO不就是一边增加,一边删除?”

现在问题 不是如何MOVETO节点,而是Data是自动跟着Node,一起移动!
luckhacker 2004-10-26
  • 打赏
  • 举报
回复
MOVETO不就是一边增加,一边删除?
eastxiang 2004-10-26
  • 打赏
  • 举报
回复
有没有人进行“树间”MoveTo 呀!!??
eastxiang 2004-10-26
  • 打赏
  • 举报
回复
UP
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
自己UP
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
自己UP
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
我现在就是要 “树间”的 MoveTo ,并且Data是自动跟着Node的,我搞了一天,没有搞定
quicksand201 2004-10-25
  • 打赏
  • 举报
回复
学习中……
--=====是用来做权限吗?=====--
myy 2004-10-25
  • 打赏
  • 举报
回复
“树间”的 MoveTo 我没用过,但是同树中MoveTo时,Data是自动跟着Node的。
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
to myy() :
我现在的 两棵树的 节点DATA 结构一样!

如何用MoveTo 或 CopyTo 函数将DATA也移过来!!
myy 2004-10-25
  • 打赏
  • 举报
回复
可以用Virtual Treeview 的 MoveTo 或 CopyTo 函数,也支持“树间”。

两棵树的 节点DATA 应该一样才有意义。

onsavenode,onloadnode事件在 调用SaveToStream/LoadFormStream保存/恢复
整棵树时对每个Node触发,也可以用,但用在整树复制更好。
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
to comanche(太可怕) :
请问 Virtual Treeview 的: onsavenode,onloadnode事件如何使用!??
comanche 2004-10-25
  • 打赏
  • 举报
回复
楼上的 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;
asd4567 2004-10-25
  • 打赏
  • 举报
回复
高手们先帮我把两个TreeView互拖的问题解决一下撒,分不够我再给撒,很急的!
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
请高手们就用 Virtual Treeview 的DEMO中 OLE.dpr 做过例子!谢谢!
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
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);也带过去!!
eastxiang 2004-10-25
  • 打赏
  • 举报
回复
是 Virtual Treeview 控件, 不是TTreeview 控制!
Virtual Treeview 控件可以在节点自定义数据结构(即DATA),移动时如何将一颗树的节点的DATA移植到另一颗树的相应节点!
comanche 2004-10-25
  • 打赏
  • 举报
回复
主要还是 id 字段, Caption 那个, 一个要删, 一个要加, 既然是 virtual 的 treeview 那你用什么存 Node? DataSet? 记得在完成操作后要重画一下
asd4567 2004-10-25
  • 打赏
  • 举报
回复
lzy6204能不能写得通用一些,他说的是两树之间的相互拖动撒
lzy6204 2004-10-25
  • 打赏
  • 举报
回复
先设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;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧