unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
TreeView1: TTreeView;
ListBox1: TListBox;
Button1: TButton;
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.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 TForm1.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;
end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;type
TForm1 = class(TForm)
TreeView1: TTreeView;
ListBox1: TListBox;
Button1: TButton;
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.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 TForm1.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;
end.
完全正确,万分感谢,希望下次再得到您的指点