• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi 拖动操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  拖动操作的一般步骤:

  (1) 开始拖动操作

  (2) 接收拖动项目

(3)放下拖动项目

  (4) 终止拖动项目

   一、开始拖动

拖动模式(DragMode)设置为dmAutomatic时,用户在源控件上按下鼠标时拖动自动开始;

设置为dmManual时通过调用BeginDrag方法开始拖动

二 、接收拖动

     当一个拖动窗体(控件)拖动一接受窗体(控件)上是,触发onDrawOver事件。接受窗件是否接受拖动窗体。在onDragOver事件判定.

    onDragOver事件原型

  type

  TDragOverEvent = procedure(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean) of object;

  property OnDragOver: TDragOverEvent;

参数

Sender 接收窗体。即触发事件的窗体

Source 拖动窗体,即开始拖动的窗体

x,y 屏幕坐标

state: (dsDragEnter, dsDragLeave, dsDragMove) 拖动状态

Accept: 默认为true,为Accept表示,接受拖动,为false 表示不接受拖动

 

三、放下拖动

   当OnDragOver事件处理过程中Accept参数设置为True且窗体放下时,由onDragDrop事件处理过程来完成拖动放下后的响应。

OnDragDrop原型

type TDragDropEvent = procedure(Sender, Source: TObject; X, Y: Integer) of object;
property OnDragDrop: TDragDropEvent;

参数

Sender: 接收窗体

Source:拖动窗体

x,y 屏幕坐标

四 结束拖动

   结束拖动操作有两个:

(1) 用户释放了鼠标键

(2) 用EndDrag方法强行中止拖动

结束两种:

(1) 放下被 接受

(2) 放下被忽略

拖动操作结束后源控件都要收到一条消息响应拖动结束事件 OnEndDrag

OnEndDrag原型

type TEndDragEvent = procedure(Sender, Target: TObject; X, Y: Integer) of object;

property OnEndDrag: TEndDragEvent;

Sender 拖动的窗体

Target 接受的窗体 

x,y 屏幕坐标

转载于:https://www.cnblogs.com/goldTeam/archive/2012/11/08/2759825.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MDS算法及其matlab实现发布时间:2022-07-18
下一篇:
去掉matlab图片空白边缘发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap