Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
TDropper - Компонент для перетаскивания файлов

Автор: Матвеев Игорь

Все наверное знают, что существует такая технология обмена данными как Drag&Drop (переводится как "Перетащи и брось"). Суть в том, что пользователь может перетаскивать какие-то данные (например файлы) из одной программы в другую.

 Например, в проводнике Windows файла и группы файлов можно перетаскивать между разными экземплярами проводника. В результате файл или группа файлов просто копируется в место назначения, а исходные данные - удаляются.

 Такая архитектура обмена данными позволяет значительно упростить работу конечного пользователя. Например в архиваторе файлов WinRar встроены возможности не только принимать файлы, перетащенные в окно программы, и упаковывать их в текущий архив, но и перетаскивать файлы из архива, извлекая их в место назначения. Эти возможности приближают работу с архивами в WinRar к работе с обычными файлами в проводнике.

 Принимать файлы легко - это сделать можно средствами API и ShellAPI, а вот как сделать, чтобы файлы можно было таскать из вашего приложения? Я думал над этим вопросом еще год назад и думал что это будет легко, а недавно мне это было просто необходимо для моего архиватора файлов.

 В итоге решение было найдено - создан компонент TDropper, который позволяет внедрять в ваши проекты возможность перетаскивания файлов из окна вашей программы в окно проводника Windows или другой программы.

 Загрузить компонент

 Работа с компонентом очень проста, вы должны установить свойство Enabled в True и в нужное время (в момент начала перетаскивания) вызвать метод TDropper.StartDrag. При этом курсор мыши меняется на стрелочку с плюсиком. А когда пользователь отпускает клавишу мыши вызывается событие TDropper.OnDropUp, в нем вы должны вписать в список Files имена файлов для перетаскивания.

 Примечание: При работе из под Delphi, при перетаскивании могут возникнуть ошибки, которые ловятся Delphi, но в итоговом приложении они не обнаруживаются.

 Компонент свободен для коммерческого и некоммерческого использования, а с предложениями и пожеланиями - пишите.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay