ListView往TreView里面拖拽
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
ListView1: TListView;
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := False;
if (source is TTreeView) or (source is TListView) then
Accept := True;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
tSrcNode, tDesNode: TTreeNode;
begin
tDesNode := TTreeView(Sender).GetNodeAt(X, Y);
if Source is TTreeView then
begin
tSrcNode := TTreeView(Sender).Selected;
tSrcNode.MoveTo(tDesNode, naAddChild);
end;
if Source is TListView then
begin
TreeView1.Items.AddChild(tDesNode, ListView1.Selected.Caption);
ListView1.Selected.Delete;
TreeView1.Selected.Expand(True);
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
ListView1: TListView;
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := False;
if (source is TTreeView) or (source is TListView) then
Accept := True;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
tSrcNode, tDesNode: TTreeNode;
begin
tDesNode := TTreeView(Sender).GetNodeAt(X, Y);
if Source is TTreeView then
begin
tSrcNode := TTreeView(Sender).Selected;
tSrcNode.MoveTo(tDesNode, naAddChild);
end;
if Source is TListView then
begin
TreeView1.Items.AddChild(tDesNode, ListView1.Selected.Caption);
ListView1.Selected.Delete;
TreeView1.Selected.Expand(True);
end;
end;
end.