zoukankan      html  css  js  c++  java
  • TreeView节点拖拉操作





    //这个拖拽的感觉不对
        
    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls;

    type
      TForm1 = class(TForm)
        TreeView1: TTreeView;
        procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        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.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if ( Button = mbLeft ) and
         ( htOnItem in Treeview1.GetHitTestInfoAt( X, Y ) ) then
      begin
        Treeview1.BeginDrag( False );
      end;
    end;

    {鼠标拖拉操作}
    procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    var
      Node : TTreeNode;
    begin
      if Source = Treeview1 then
      begin
        Node := Treeview1.GetNodeAt( X, Y );
        if Node <> nil then
          Accept := true;
      end;
    end;

    {拖拉放下}
    procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
      TempNode : TTreeNode;
      AttachMode : TNodeAttachMode;
    begin
      if Treeview1.Selected = nil then
        Exit;
      AttachMode := naAddChild;
      Treeview1.Items.BeginUpdate;
      try
        TempNode := Treeview1.Items.AddChild( Treeview1.DropTarget,'Temp' );
        try
          Treeview1.Selected.MoveTo( Treeview1.DropTarget, AttachMode );
        finally
          TempNode.Free;
        end;
      finally
        Treeview1.Items.EndUpdate;
      end;
    end;

    end.




    附件列表

    • 相关阅读:
      Java集合中List,Set以及Map等集合体系详解
      Rabbit-MQ-3 队列的属性和消息的属性
      RabbitMQ-1 基本概念和实现简单生产消费者
      ActiveMQ-3
      日期时间类
      字符串反转
      SpringBoot2.0+Shiro+MyBatisPlus权限管理系统
      Servlet+JSP+JDBC学生选课系统
      SpringMVC+Spring+Hibernate个人家庭财务管理系统
      Servlet中FilterConfig的使用
    • 原文地址:https://www.cnblogs.com/xe2011/p/3876296.html
    Copyright © 2011-2022 走看看