两个TreeView之间的拖拉时能够带着子节点一起拖动,并且一边的TreeView为空时,另一边的TreeView节点可以连子节点一起拖动到这个空TreeView中
解决方案 »
- 如何获取网站上的图片,然后直接显示在image上?
- 我在treeview中想提取节点ID,我用指针会报错
- 第3方控件Ehlib3.0和DevExpress QuantumGridSuite3.2.2是否收费?
- Tdatabase连接信息哪里获取?
- MM求救:delphi 7 分段读取txt文件
- 如何在SQL语句中为TEXT字段回车?
- 无边框窗体,如何通过改善SC_SIZE消息改变窗体大小。
- delphi中把整型数据转换成浮点型的函数
- 多个数据表格中同一字段的累加求和问题,请高手帮忙!!!
- 急!我安裝AdoExpress 需要輸入delphi5的SN,(我的安裝盤封面紙丟了) 請哪位大俠告訴我,thank you very much
- ★★★★如何知道mediaplayer播放的歌曲已播放完???
- windindance(风舞轻扬) 只才靠你了!帮我看看下成两个sql语句的区别?
var
TempNode3,T:TtreeNode;
AttachMode2 : TNodeAttachMode;
begin
if target <> nil then
begin
T:=(target as TTreeview).GetNodeAt(x,y);
if T<>nil then
begin
if Target <> Sender then
begin
AttachMode2 := naAddChild;
(target as TTreeview).Items.BeginUpdate;
TempNode3 := (target as TTreeview).Items.AddChild( (Sender as TTreeview).DropTarget,'Temp' );
(Sender as TTreeview).Selected.MoveTo(T, AttachMode2 );
TempNode3.Free;
(target as TTreeview).Items.EndUpdate;
end;
end
else
begin
if Target <> Sender then
(target as TTreeview).Items.Add(nil,(sender as TTreeview).Selected.Text);
end;
end;
end;在(Sender as TTreeview).Selected.MoveTo(T, AttachMode2 );TempNode3.Free;两处地方都报错,下面如果没有根的树中也只能拖动根节点,而叶子节点移不过来,是怎么回事呀?
Assign()
procedure TfrmPopedom.CopyAllNode(SouNode,DesParentNode:TfCTreeNode;des:TfcTreeView);
var node:TfcTreeNode;
begin
node := des.Items.AddChild(DesParentNode,SouNode.Text);
node.Imageindex := SouNode.imageindex;
node.selectedindex := SouNode.Selectedindex;
node.Stringdata := SouNode.StringData; while SouNode.GetFirstChild <>nil do
begin
copyAllNode(SouNode.GetFirstChild,node,des);
SouNode.GetFirstChild.delete;
end;end;procedure TfrmPopedom.MoveNode(SouNode,DesNode:TfcTreeNode;des:TfcTreeView);
var child,node:TfcTreeNode;
begin
child := sounode.getfirstchild;
while child<>nil do
begin
node := FindNode(child.StringData,des);
if node=nil then
copyAllNode(child,DesNode,des)
else moveNode(child,node,des);
Child.Delete;
Child := sounode.getfirstchild;
end;end;function TfrmPopedom.FindNode(FindStr:string;ATreeView:TfcTreeView):TfcTreeNode;
var i:integer;
begin
result := nil;
for i:=0 to ATreeView.Items.Count-1 do
if ATreeView.Items[i].StringData = FindStr then
begin
result:= ATreeView.Items[i];
break;
end;
end;