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.
附件列表
TreeView节点拖拉操作的更多相关文章
- TreeView节点拖拉操作1
TreeView节点拖拉操作1 //事先设置 TreeView1.DragMode= dmAutomatic; unit Unit1; interface uses Windows, Me ...
- DSAPI TreeView节点增删简化操作
将一行或多行字符串添加到TreeView控件. 函数: 控件.TreeView控件.添加路径节点到TreeView(要添加节点的TreeView控件,字符串或字符串数组) 示例:将一个多行文本添加到T ...
- TreeView节点
TreeView由节点构成,建树通过对TreeView.items属性进行操作.Items是一个TTreeNodes对象,这是一个TTreeNode集. 一.针对TTreeNodes,也就是 Tree ...
- WPF如何实现TreeView节点重命名
我们经常看到一些软件比如酷狗音乐,在对列表右键进行重命名的时候,当前列表会泛白并且进入可编辑状态,当我们更改完成后就会并进入非编辑状态,这些具体是怎么实现的呢?下面的方法也许会提供一些思路,下面的Tr ...
- WPF 之 TreeView节点重命名
下面的TreeView节点是通过数据双向绑定的方式,绑定到TextBlock控件和TextBox控件的Text属性上,并且让两者绑定相同的属性,同时使TextBox控件刚好完全覆盖TextBlock控 ...
- dom节点的操作
dom节点的操作 -- jQuery 内部插入 1.(结尾)append 方法 . appendto方法(为了方便链式操作) (开头)prepend方法 $('#div1').ap ...
- kendo ui的treeView节点点击事件修改和grid的配置的一点总结
kendo-ui的treeView节点(node)点击时 可以触发一个select的事件(event),并且连续点击多次相同节点,可以触发并且只能触发一次该事件. 可是需求上需要实现:每次点击相同的 ...
- openstack中彻底删除计算节点的操作记录
在使用openstack的过程中,我们经常会添加好几台计算节点来部署虚拟机,在后续使用中由于某些原因,一些计算节点出现了问题,需要将这些出了问题的计算节点从openstack的控制节点中踢出去!但是很 ...
- jquery中的节点的操作
节点的操作 Dom 文档对象 模型 解决 一.插入节点 Append() 在每个匹配的元素中追加内容 Var $li_1= “<li></li>”; Var $li_2 = ...
随机推荐
- android 滑动菜单SlidingMenu的实现
首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对Gesture ...
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- 为duilib的MenuDemo增加消息响应,优化代码和显示效果
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/38253297 第一部分 我在前一段时间研究了怎么制作duilib的菜单, ...
- C#获取汉字拼音
C#获取汉字拼音 using System; using System.Collections.Generic; using System.Text; using System.Text.Reg ...
- htmlcss笔记--标签默认值样式重置css reset
1.<a>标签 有默认文字修饰:下划线, 去除:text-decoration:none; text-decoration属性值: none 默认.定义标准的文本. underline 定 ...
- 微软Azure已开始支持hadoop--大数据云计算
微软Azure已开始支持hadoop,对于有需要弹性大数据运算的公司可能是个好消息.据悉,近期微软已提供一个预览版的Azure HDInsight(Hadoop on Azure)服务,运行在Linu ...
- matlab的&和&&操作
A&B(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算.(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0]).A&&B(1)首先判断A的逻辑值,如果 ...
- Hadoop MapReduce程序中解决第三方jar包问题方案
hadoop怎样提交多个第三方jar包? 方案1:把所有的第三方jar和自己的class打成一个大的jar包,这种方案显然笨拙,而且更新升级比较繁琐. 方案2: 在你的project里面建立一个lib ...
- 优雅地对泛型List 进行深拷贝
public class People { public string Name; public int Age; public People(string name, int age) { this ...
- StringReplace用法
来自:http://www.aspww.cn/View/12022801.aspx ---------------------------------------------------------- ...