Как определить, что операция перетаскивания закончилась в FireMonkey? - PullRequest
7 голосов
/ 11 января 2012

Я хочу выяснить, выпущен ли перетаскиваемый элемент управления вне какой-либо цели.

Можно подумать, что следует использовать OnDragEnd, но это событие не работает (они забыли вызвать процедуру DragEnd в модуле FMX.Types).

В качестве альтернативы я пробовал OnMouseUp для перетаскиваемого элемента управления. Не работает Не срабатывает, когда DragMode = dmAutomatic.

В качестве последнего средства я попытался переопределить процедуру MouseUp самой формы (поскольку все события мыши проходят через форму перед передачей в соответствующий элемент управления). Сюрприз: процедура MouseUp не вызывается, когда DragMode = dmAutomatic элемента управления.

Удивительно, как что-то очень простое, чего так трудно достичь, но я надеюсь, что кто-то мог найти работающее решение.

1 Ответ

1 голос
/ 11 января 2012

Возможно переопределить метод DragLeave формы. Этот метод вызывается для всех объектов, которые выпадают за пределы целевой области.

...