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.




    附件列表

    • 相关阅读:
      SQLalchemy 字段类型
      爬虫学习
      Linux了解一下
      django-rest-framework
      vue相关理论知识
      Django认证系统
      Form组件
      JS之AJAX
      Django之中间件
      Django之ORM
    • 原文地址:https://www.cnblogs.com/xe2011/p/3876296.html
    Copyright © 2011-2022 走看看