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.




    附件列表

    • 相关阅读:
      MongoDB compass 连接不上远程服务器的解决方法
      art-template 模版引擎
      mongodb数据库的集合关联
      捕获mongoogse 错误信息
      inux下使用自带mail发送邮件告警
      rinted端口转发工具
      windows安装PHP IIS MYSQL
      sql语句查询知识点
      maven加速镜像
      docker启动容器关于防火墙报错
    • 原文地址:https://www.cnblogs.com/xe2011/p/3876296.html
    Copyright © 2011-2022 走看看