2012-01-11 18 views
7

ドラッグされたコントロールがターゲットの外にリリースされたかどうかを調べたいと思います。FireMonkeyでドラッグ操作が終了したと判断するにはどうすればよいですか?

OnDragEndを使用する必要があると考えられますが、そのイベントは機能しません(FMX.TypesユニットのDragEndプロシージャを呼び出すのを忘れていました)。

代わりに、ドラッグしたコントロールのOnMouseUpを試しました。動作しません。 DragMode = dmAutomaticのときにトリガされません。

最後の手段として、すべてのマウスイベントがそれぞれのコントロールに渡される前にフォームを通過するため、フォーム自体のMouseUpプロシージャをオーバーライドしようとしました。サプライズ:MouseUpプロシージャは、コントロールのDragMode = dmAutomaticのときに呼び出されません。

これは非常に簡単なことですが、実現するのは非常に難しいですが、誰かが実用的な解決策を見つけたことを願っています。

+0

ドラッグモードでは、ドラッグイベントによって最初にキャッチされるため、通常のマウスイベントは失われます。ドラッグイベントがうまくいくまで、誰かが答えを持っていればうれしいです。おそらくバグでしょう。あなたはUpdate 3を持っていますか? –

+0

はい、アップデート3があります。解決策を見つけたら報告します。 – Domus

答えて

1

フォームのDragLeaveメソッドをオーバーライドすることは可能です。このメソッドは、ターゲット領域外にドロップされるすべてのオブジェクトに対して呼び出されます。

関連する問題