【问题标题】:Detecting is something being dragged over my application检测是被拖到我的应用程序上的东西
【发布时间】:2012-06-22 14:43:01
【问题描述】:

我需要知道一些对象被拖到我的 Delphi 应用程序上。

例如:当用户将某个项目从 ListView 拖到 ListBox,或者将某个文件从 Explorer 拖到我的 LitsView 中时,我想随时检查他是否还在拖或不再拖。

我可以在不挂钩拖动事件的情况下找到这个吗?

德尔福 XE

【问题讨论】:

  • “没有挂钩拖动事件”是什么意思
  • 您看过 Anders Melander 的“拖放组件套件”吗?我在 XE 和 XE2 中使用它轻松地完成了非常相似的事情。这是网址:melander.dk/delphi/dragdrop
  • @DavidHeffernan 我的意思是我可以捕捉到 OnStartDrag 之类的东西并在那里设置布尔标志,但我想要一些更通用的解决方案
  • 我看不出您提出的解决方案缺乏通用性。
  • @Andrew:没有 API 可以询问 Windows 当前是否正在拖动某些东西。 Anders的组件是基于OLE拖放(IDropTarget等)。

标签: delphi drag-and-drop state


【解决方案1】:

我会在拖动过程开始时做一个记录,例如在调用IDropTarget.DragEnter 时。然后在随后调用DragLeaveDrop 时重置标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多