Стандартная реализация техники drag-and-dropоснована на использовании левой кнопки мыши. Как именно будет проинтерпретировано приложением перетаскивание объекта, зависит от свойств приемника и от того, какая операция пересылки используется в качестве предопределенной. Как ив случае командного метода, результат операции определяется также свойствами перемещаемого объекта (в частности, перечнем разрешенных форматов объекта). Не рекомендуется использовать в качестве предопределенной операции такую, которая может привести к удалению или необратимому изменению объекта. Если же необходимость применения одной из таких операций обусловлена текущей ситуацией, следует вывести на экран сообщение пользователю с просьбой подтвердить намерения.
Используя технику drag-and-drop,пользователь может непосредственно пересылать объекты, как между окнами приложения, так и между окнами системных ресурсов, такими, например, как папки и принтеры.
Чаще всего в качестве предопределенной операции для drag-and-dropиспользуется операция «Переместить (Move)»,но вместо нее может быть определена любая другая операция пересылки, например «Копировать»или «Связать»,или даже специализированная операция пересылки, такая, например, как «Копировать Свойства».
Нестандартная реализация техники drag-and-drop
В основе нестандартной реализации техники drag-and-dropлежит использование правой кнопки мыши. Особенность данного подхода заключается в следующем. Когда пользователь щелкает ПКМ на объекте-приемнике (или на позиции, куда пересылается объект), вместо выполнения предопределенной операции открывается всплывающее меню для объекта-приемника. Это меню содержит набор команд пересылки, разрешенных для данной позиции, но с учетом особенностей объекта, подлежащего пересылке. Тот факт, что команды всплывающего меню относятся к приемнику, а не к пересылаемому объекту, должен учитываться и в названиях этих команд. В частности, если пересылается содержимое объекта (данные), такими командами могут быть: «Переместить сюда (Move Here)», «Копировать сюда (Сору Неrе)».Если же приемник поддерживает пересылку только отдельных компонентов объекта, или требует его преобразования, названия команд должны отражать эту особенность приемника (например, «Копировать свойства сюда»).
Общий формат нестандартных команд пересылки выглядит следующим образом: [ имякоманды ] [ имя типа | имя объекта ] Неrе как [ имя типа ].