Перетаскивание внутри приложения И в другое приложение - PullRequest
4 голосов
/ 13 октября 2008

У меня есть ListView, содержащий имена файлов. Эти имена файлов необходимо перетаскивать в TreeView, который представляет собой перетаскивание внутри приложения и работает со встроенной поддержкой перетаскивания в Delphi - нет проблем. Но я также должен иметь возможность перетаскивать элементы ListView в другое приложение, например, Проводник Виндоус. Это также работает, например, с использованием компонента DragFileSource из набора компонентов Андерса Меландера (http://melander.dk), который начинает свою работу в событии ListView.MouseDown, поэтому в действительности не инициируется операция перетаскивания.

По сути, мне нужно такое же поведение, какое вы видите в проводнике Windows: вы можете перетащить элемент в другую папку внутри приложения, а также в другое приложение.

Как это можно сделать в Delphi? Я предполагаю, что должно быть инициировано «перетаскивание», но когда мышь выходит за пределы окна приложения, она должна «переключиться» на другие функции, и если мышь переместится обратно в окно приложения, снова обратно к стандартному перетаскиванию .

Спасибо за любую помощь!

Хольгер

Ответы [ 3 ]

5 голосов
/ 14 октября 2008

Набор компонентов Drag and Drop , который вы упомянули, делает это. Вы можете инициировать перетаскивание, которое вы можете добавить в свое собственное приложение или другие приложения по умолчанию. Просто выберите правильный формат буфера обмена, который понимают другие приложения. В чем твоя проблема?

2 голосов
/ 13 октября 2008

Если вы хотите перетаскивать как в стиле VCL, так и в стиле Windows, то используйте стиль Windows для всего, включая перетаскивание в собственном приложении.

0 голосов
/ 14 октября 2008

Компоненты DropMaster могут помочь с этим - см. http://www.raize.com/DevTools/DropMaster/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...