treeview属性DragOver、DragDrop

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

posted @ 2017-05-26 15:12  delphi学习交流吧  阅读(787)  评论(0编辑  收藏  举报