2012-01-11 32 views
7

我想知道拖動的控件是否已經釋放到任何目標之外。人們會認爲應該使用OnDragEnd,但該事件不起作用(他們忘記了在FMX.Types單元中調用DragEnd過程)。如何確定FireMonkey中的拖動操作已結束?

作爲一種替代方法,我嘗試了拖動控件的OnMouseUp。不起作用。 DragMode = dmAutomatic時不會觸發。

作爲最後的手段,我試圖覆蓋窗體本身的MouseUp過程(因爲所有的鼠標事件在傳遞到相應的控件之前都會經過窗體)。驚喜:當控件的DragMode = dmAutomatic時,MouseUp過程不會被調用。

令人驚訝的是,這非常簡單,這是非常難以實現的,但我希望有人可能找到了工作解決方案。

+0

在拖動模式下,您將失去正常的鼠標事件,因爲它們首先被拖動事件捕獲。至於讓拖動事件起作用,希望有人能得到答案。這很可能是一個錯誤。你有更新3嗎? – 2012-01-11 15:46:53

+0

是的,有更新3.當我找到解決方案時,我會回報。 – Domus 2012-01-11 16:00:43

回答

1

可以重寫窗體的DragLeave方法。調用此方法的所有對象將被放置在目標區域之外。

相關問題