如何确定在FireMonkey中拖动操作已经结束?

7
我想知道拖动控件是否已释放到任何目标之外。
人们可能会认为应该使用OnDragEnd事件,但该事件无效(他们忘记在FMX.Types单元中调用DragEnd过程)。
作为替代方案,我尝试了拖动控件的OnMouseUp。不起作用。当DragMode = dmAutomatic时不会被触发。
最后,我试图覆盖表单本身的MouseUp过程(因为所有鼠标事件都通过表单传递给相应的控件)。惊奇的是:当控件的DragMode = dmAutomatic时,MouseUp过程不会被调用。
令人惊讶的是,这么简单的事情竟然如此难以实现,但我希望有人能找到一个有效的解决方案。

当处于拖动模式时,您将失去正常的鼠标事件,因为它们首先被拖动事件捕获。至于使拖动事件起作用,希望有人能给出答案。这很可能是一个错误。您是否安装了Update 3? - Marcus Adams
是的,已经有第三个更新了。我找到解决方案后会回报。 - Domus
1个回答

1

可以重写表单的 DragLeave 方法。该方法会针对所有在目标区域之外被放置的对象进行调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接