Как ограничить движение мыши областью при DragOver при помощи ClipCursor?

Появилась задача – ограничить движение мыши прямоугольной областью, чтобы корректно работал механизм DragOver. Дело в том, что если разместить TreeView и ListView и прописать в каждом из них взаимоисключающие Accept параметры, то при переносе на соседний элемент иногда возникают проблемы. В итоге, решил ограничить область действия мыши для каждого из них отдельно. Поскольку я разрабатывал компонент, то использовал свойства для точного определения координат прямоугольника.

Получилось так…

В секции type private

В секции public

В implementation

Снятие ограничения в DragDrop, но у меня оно почему-то не срабатывало как нужно

И тогда я добавил снятие ограничения в MouseMove

В принципе, это всё!

Да, в интернетах пишут, что правильно снимать ограничение нужно так, в принципе это одно и тоже

Теперь, если это у нас компонент, то нам нужно вводить координаты родителя, и при каждом его перемещении передавать их заново, я сделал это так, в родителе прописал следующее

 

 

 

This entry was posted in Delphi. Bookmark the permalink.