TreeView结点拖拽问题 TreeView结点拖拽,比如:我这里有两颗树tv1,tv2,tv1上有5个节点,依次为1,2,。。5,我希望从tv1上任意拖几个节点到tv2上,同时希望能像tv1上一样的顺序,明白了吗?请各位大侠指点!3Q!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 借个例子给你,在拖放的时候自己排一下序就行了嘛unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls;type TForm1 = class(TForm) TreeView1: TTreeView; procedure FormCreate(Sender: TObject); procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);var stream: TStream;begin TreeView1.Align := alLeft; stream := TMemoryStream.Create; with TStringList.Create do begin Add('一连长'); Add(' 一排长'); Add(' 一班长'); Add(' 战士1'); Add(' 战士2'); Add(' 战士3'); Add(' 战士4'); Add(' 二班长'); Add(' 三班长'); Add(' 二排长'); Add(' 三排长'); Add('二连长'); Add('三连长'); SaveToStream(stream); Free; end; stream.Position := 0; TreeView1.LoadFromStream(stream); stream.Free; TreeView1.DragMode := dmAutomatic; {允许自动拖放}end;{只允许拖动子节点}procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);begin Accept := not TTreeView(Source).Selected.HasChildren;end;procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);var n1,n2: TTreeNode;begin if Sender=Source then begin n1 := TTreeView(Sender).Selected; {源} n2 := TTreeView(Sender).DropTarget; {目标} TreeView1.Items.Insert(n2, n1.Text); {目标前插入} n1.Delete; {删除源} end;end;end. 在线等 delphi 怎样读取和修改 RES文件 大家找工作的间隔一般是多长时间? XLgrid如何连接数据库?谢了. 安装报表fastreport时的问题? rave 报表为什么不能打印指定页? 网络数据库开发方案100分 请问如何在IE工具栏中加上一个图标,点击以后就弹出我的程序在IE区域的左部 有什么办法能把文本文件中的一个空行给删除 关于红警2的加速问题? error Undeclared identifier:'Tguessform' 高薪找人回答问题
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
stream: TStream;
begin
TreeView1.Align := alLeft;
stream := TMemoryStream.Create;
with TStringList.Create do begin
Add('一连长');
Add(' 一排长');
Add(' 一班长');
Add(' 战士1');
Add(' 战士2');
Add(' 战士3');
Add(' 战士4');
Add(' 二班长');
Add(' 三班长');
Add(' 二排长');
Add(' 三排长');
Add('二连长');
Add('三连长');
SaveToStream(stream);
Free;
end;
stream.Position := 0;
TreeView1.LoadFromStream(stream);
stream.Free;
TreeView1.DragMode := dmAutomatic; {允许自动拖放}
end;{只允许拖动子节点}
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := not TTreeView(Source).Selected.HasChildren;
end;procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
n1,n2: TTreeNode;
begin
if Sender=Source then
begin
n1 := TTreeView(Sender).Selected; {源}
n2 := TTreeView(Sender).DropTarget; {目标}
TreeView1.Items.Insert(n2, n1.Text); {目标前插入}
n1.Delete; {删除源}
end;
end;end.