DragDrop:拖放完成,也就是鼠标拖入对象并在拖放区域释放。
DragEnter:拖放进入,也就是鼠标拖放对象进入拖放区域。
DragLeave:离开拖放区域。
DragOver:拖放对象悬浮于拖放区域,在拖放区域内移动时多次触发。
示例:
{只允许拖动子节点} 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;
参考链接:http://www.cnblogs.com/del/archive/2008/03/13/1104035.html