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.




    附件列表

    • 相关阅读:
      新概念英语(1-25)Mrs. Smith's Kitchen
      新概念英语(1-23)Which glasses?
      新概念英语(1-21)Whick book
      BZOJ2212: [Poi2011]Tree Rotations(线段树合并)
      BZOJ4773: 负环(倍增Floyd)
      洛谷P1155 双栈排序(贪心)
      洛谷P1024 一元三次方程求解(数学)
      洛谷P1072 Hankson 的趣味题(数学)
      2018.10.26NOIP模拟赛解题报告
      洛谷P2831 愤怒的小鸟(状压dp)
    • 原文地址:https://www.cnblogs.com/xe2011/p/3876296.html
    Copyright © 2011-2022 走看看