我想知道是否已在任何目标之外释放拖动控件。
有人会认为应该使用OnDragEnd,但该事件不起作用(他们忘记在FMX.Types单元中调用DragEnd过程)。
作为替代方案,我尝试使用OnMouseUp进行拖动控制。不行。当DragMode = dmAutomatic时,不会触发。
作为最后的手段,我试图覆盖表单本身的MouseUp过程(因为所有鼠标事件都会在传递给相应控件之前通过表单)。惊喜:当控件的DragMode = dmAutomatic时,不会调用MouseUp过程。
令人惊讶的是,这非常简单,这是非常难以实现的,但我希望有人可能找到了一个有效的解决方案。
答案 0 :(得分:1)
可以覆盖表单的DragLeave方法。对于在目标区域之外被丢弃的所有对象,都会调用此方法。