Delphi拖放操作

本文介绍了Delphi中控件的拖放操作,包括拖放属性、事件和方法,详细阐述了如何实现控件之间的拖放功能,以及在cxGrid中进行记录拖放的关键点。同时,通过实例讲解了文件管理器的拖放移动和拷贝功能的实现,强调了在拖放操作中判断源控件类型和目标控件接受条件的重要性。
摘要由CSDN通过智能技术生成

今天明白了如何进行拖放操作(有赖于下面转载的文章)。而且进一步实验如何在cxgrid中拖放记录,其中有一个关键点就是目标对象的OnDragOver中写入Accept := (Source is TcxDragControlObject),原本一直写的Accept := (Source is TcxGridDBTableView)是错误的。

 

【转载】

拖放(DragDrop)Windows提供的一种快捷的操作方式。作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。

  

 

Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我们先介绍控件的拖放支持,而后再给出开发拖放操作的一般步骤和应用实例。 

9.1 控件的拖放支持 

  拖放操作中控件可以分为源控件和目标控件两类。绝大部分控件既可以作为源控件也可以作为目标控件。但也有一部分控件只能支持其中的一种。 

9.1.1 拖放属性 

  拖放属性主要有两个:

  ●

DragMode : 拖动模式

  ●

DragCursor : 拖动光标 

  它们都是在拖放的源控件中设置。

DragMode控制用户在运行时间内当在控件上按下鼠标时控件如何反应。如果DragMode置为dmAutomatic,那么当用户在控件上按下鼠标时拖动自动开始;如果DragMode置为dmManual(这是缺省值),则将通过处理鼠标事件来判断一个拖动是否可以开始。

  

DragCursor用于选择拖动时显示的光标,缺省值是CrDrag,一般不要去修改它。在程序设计过程中通用的界面规范应该得到开发者的尊重。但有时候为了特定的目的,开发者也可以把自己设计的光标赋给DragCursor。 

9.1.2 拖放事件 

  拖放事件主要有三个:

  ●

OnDragOver:拖动经过时激发

  ●

OnDragDrop:拖动放下时激发

  ●

OnEndDrop :拖动结束时激发 

  前两个事件由目标控件响应,后一个事件由源控件响应。

  

OnDragOver事件最主要的功能是确定当用户就地放下拖动时控件是否可以接受。它的参数包括: 

Source TObject;  { 源控件}

XY Integer; { 光标位置}

State TDragState { 拖动状态}

var Accept Boolean { 能否接受} 

  

TDragState是一个枚举类型,表示拖放项目与目标控件的关系。 

  

type

TDragState = (dsDragEnter, dsDragLeave, dsDragMove);

  不同取值的意义如下表:

 

 

9.1 DragState 的取值与意义

━━━━━━━━━━━━━━━━━━━━━━━━━━━

  取 值

意 义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值