Карта сайтаСсылкиКонтакты

Перетаскивание пунктов в TreeView

PDF Печать
Статьи

Этот код использует GetNodeAt, чтобы добавить перемещенный узел как потомок узла в положении мыши, когда отпущена кнопка:


procedure TForm1.TreeView1DragDrop
(Sender, Source: TObject; X, Y: Integer) ;
var
   AnItem: TTreeNode;
   AttachMode: TNodeAttachMode;
   HT: THitTests;
begin
   if TreeView1.Selected = nil then 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;

 

Добавить комментарий


Защитный код
Обновить