< Continued from page 2
The following code uses GetNodeAt to add a dragged node as a child of the node under then mouse when it is dropped.
~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.TreeView1DragDrop
(Sender, Source: TObject; X, Y: Integer) ;
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if TreeView1.Selected = nilthen Exit;
HT := TreeView1.GetHitTestInfoAt(X, Y) ;
AnItem := TreeView1.GetNodeAt(X, Y) ;
if (HT -
[htOnItem, htOnIcon, htNowhere, htOnIndent]
<> HT) then
begin
if (htOnItem in HT) or
(htOnIcon in HT) then
AttachMode := naAddChild
else if htNowhere in HT then
AttachMode := naAdd
else if htOnIndent in HT then
AttachMode := naInsert;
TreeView1.Selected.
MoveTo(AnItem, AttachMode) ;
end;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~
Delphi tips navigator:
» Get Default Printer Name
« Show *any* graphics as Glyph on a SpeedButton
The following code uses GetNodeAt to add a dragged node as a child of the node under then mouse when it is dropped.
~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.TreeView1DragDrop
(Sender, Source: TObject; X, Y: Integer) ;
var
AnItem: TTreeNode;
AttachMode: TNodeAttachMode;
HT: THitTests;
begin
if TreeView1.Selected = nilthen Exit;
HT := TreeView1.GetHitTestInfoAt(X, Y) ;
AnItem := TreeView1.GetNodeAt(X, Y) ;
if (HT -
[htOnItem, htOnIcon, htNowhere, htOnIndent]
<> HT) then
begin
if (htOnItem in HT) or
(htOnIcon in HT) then
AttachMode := naAddChild
else if htNowhere in HT then
AttachMode := naAdd
else if htOnIndent in HT then
AttachMode := naInsert;
TreeView1.Selected.
MoveTo(AnItem, AttachMode) ;
end;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~
Delphi tips navigator:
» Get Default Printer Name
« Show *any* graphics as Glyph on a SpeedButton
SHARE