在DragDrop和DragOver中写代码,并且把DragMode设置为dmAutomatic就可以了。procedure Tmainwin.TreeView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
var
Snode,Tnode : ttreenode;
begin
if source=treeview1 then
begin
Snode:=TreeView1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) then
Snode.MoveTo(Tnode,naAddchildFirst);
else
exit;
end;
end;procedure Tmainwin.TreeView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
Snode,Tnode:Ttreenode;
begin
if source=treeview1 then
begin
Snode:=treeview1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) and (Tnode<>Snode.Parent) then
accept:=true
else
accept:=false;
end
else
accept:=false;
end;
Y: Integer);
var
Snode,Tnode : ttreenode;
begin
if source=treeview1 then
begin
Snode:=TreeView1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) then
Snode.MoveTo(Tnode,naAddchildFirst);
else
exit;
end;
end;procedure Tmainwin.TreeView1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
Snode,Tnode:Ttreenode;
begin
if source=treeview1 then
begin
Snode:=treeview1.Selected;
Tnode:=treeview1.GetNodeAt(x,y);
if (Tnode<>nil) and (Tnode<>Snode) and (Tnode<>Snode.Parent) then
accept:=true
else
accept:=false;
end
else
accept:=false;
end;
解决方案 »
- 请教:简单到家的小问题(可是偶不会):如何在两个表中的字段建立联合索引
- 请教小问题!
- 我在网上找了好久,终于找到了... 解决 TShellTreeView 老读软驱的问题
- 高手指教:Interbase 数据同步...
- 高手请进!
- dbcombobox怎么只能显示所连表里字段的一条记录?能不能把表里的所有字段都读到dbcombobox里?
- "operation not applicable"是什么意思?
- 关于虚拟串口怎么完成,比如MOXA的串口重定向的驱动程序
- delphi调用VC写的dll的问题
- 两个关于DCOM的简单问题,大家都来帮帮忙。
- 请问where xxx like ''%'+xxx+'%'' 这样的格式对吗?用adodataset作数据源。
- 100分求购软件远程升级方案!(比如说像美萍一样)
to: luyuhai(大海) 我已经发了email。谢谢两位。