200分treeview 做控件问题 ( 积分: 200 )

L

loveay

Unregistered / Unconfirmed
GUEST, unregistred user!
两个treeview。如何实现两个treeview节点的拖拽。
拖拽的原节点不被删除,保留着。
拖拽的目标treeview按右键可删除节点。求助能否把他做成控件?(最好能有原代码参考一下)谢谢
 
两个treeview。如何实现两个treeview节点的拖拽。
拖拽的原节点不被删除,保留着。
拖拽的目标treeview按右键可删除节点。求助能否把他做成控件?(最好能有原代码参考一下)谢谢
 
不难吧,自己写吧
提醒一下,你的数据结构要做得好点
 
我不懂怎么做控件啊
 
报表机器2.6 中王大侠 有一个:
reportMachine报表26xdemo/ENDUSER/Report Explorer
全部是源代码啊!

全部满足你的要求!

有空来www.51merit.com 看看我啊!
 
//两个treeview。如何实现两个treeview节点的拖拽。
在Delphi下边有关于托拽的例子,基本上就是对三个事件的响应OnDragXXX,还有一个属性的设置
//拖拽的原节点不被删除,保留着。
只要你不在代码中删除节点,他是不会自己消失的
//拖拽的目标treeview按右键可删除节点
这个也很容易,没什么好说的
 
procedure TActiveFormX.TreeView2DragDrop(Sender, Source: TObject
X,
Y: Integer);
begin
//要先把TreeView的DragMode设为dmAutomatic
(Sender as TTreeView).Items.AddChild((Sender as TTreeView).GetNodeAt(X,Y),(Source as TTreeView).Selected.Text);
// 拖动后可删除(Source as TTreeView).Items.Delete((Source as TTreeView).Selected)


//大体上是这样子做,还不支持拖动多层的结点。你还要改进一下。
end;

procedure TActiveFormX.TreeView2DragOver(Sender, Source: TObject
X,
Y: Integer
State: TDragState
var Accept: Boolean);
begin
if Source is TTreeView then Accept:=True;
end;
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
749
DelphiTeacher的专栏
D
D
回复
0
查看
691
DelphiTeacher的专栏
D
D
回复
0
查看
706
DelphiTeacher的专栏
D
D
回复
0
查看
613
DelphiTeacher的专栏
D
D
回复
0
查看
642
DelphiTeacher的专栏
D
顶部