13. Drag & Drop

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
13. Drag & Drop
События Drag&Drop
OLE-Drag&Drop
Все страницы

Технология Drag & Drop

 

Понятие технологии Drag&Drop

Каждый раз, работая в Windows, пользователь сталкивается с технологией Drag&Drop (перетащить и оставить). Например, перетаскивая файлы и папки, кнопки, ярлыки, пиктограммы. На этой технологии построена работа в Windows.

Функции Drag&Drop применяются для быстрого переноса данных с одного приложения в другое, или в пределах одного приложения. Для копирования и перемещения файлов в проводнике Windows или для открытия файлов программой путем сбрасывания файла на окно приложения.

 

Объекты Drag&Drop

В процессе Drag&Drop участвуют два объекта: объект-источник и объект-приемник. В источнике происходит захват элемента нажатием кнопки мыши. Чтобы оставить объект в объекте приемнике, следует отпустить кнопку мыши.

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

Начало процесса перетаскивания, как правило, обрабатывается в процедуре обработки события MouseDown, после чего объект становится «привязанным» к курсору мыши, пока кнопка мыши не будет отпущена.

Когда переносимый объект попадает в объект-приемник, его следует там оставить. При этом должно быть определено действие, совершаемое над перемещаемым объектом. Должен ли он быть скопирован, перемещен, и т.д.

Чтобы определить, может ли элемент управления принимать перемещенные на него данные, используется свойство AllowDrop. Если значение данного свойства True, в элементе управления допускаются операции перетаскивания, в противном случае (по умолчанию), операции перетаскивания не допускаются.

Свойство DragSize получает размеры в пикселах прямоугольной области, за пределы которой должен выйти указатель при выполнении операции перетаскивания с тем, чтобы данная операция обрабатывалась как операция перетаскивания.

Этапы процесса перемещения следует сделать наглядными, устанавливая для каждого из них соответствующий вид курсора мыши. Например, при перетаскивании файлов в Windows, символ «+» под курсором мыши говорит о том, что файл в данную папку копируется.

 

Метод DoDragDrop

Метод DoDragDrop начинает операцию перетаскивания.

DoDragDrop(data, allowedEffects),

где data - перетаскиваемые данные,

allowedEffects ? одно из значений перечисления DragDropEffects. Определяет, какие операции перетаскивания возможны.

Члены перечисления DragDropEffects:

Имя

Описание

All

Данные копируются, удаляются из источника и перемещаются в приемник.

Copy

Данные копируются в приемник.

Link

Данные из источника связываются с приемником

Move

Данные из источника перемещаются в приемник.

None

Приемник не принимает данные.

Метод DoDragDrop возвращает значение перечисления DragDropEffects, представляющее конечный результат выполнения операции перетаскивания.

Метод DoDragDrop определяет элемент управления по текущему расположению курсора. Затем он проверяет, является ли элемент управления допустимым для конечного расположения объекта. Если да, то вызывается событие GiveFeedback с указанным эффектом перетаскивания (перечисление DragDropEffects).

Изменения позиции указателя мыши, состояния клавиатуры и кнопки мыши отслеживаются. При изменении состояния клавиатуры или мыши возникает событие QueryContinueDrag, определяющее, следует ли продолжить или завершить перетаскивание либо отменить операцию на основании значения свойства Action аргумента события.

Перечисление DragAction указывает, должна ли быть продолжена операция перетаскивания и каким образом. Члены перечисления DragAction:

Имя члена

Описание

Cancel

Операция отменяется. Возникает событие DragLeave

Continue

Операция будет продолжена, возникает событие DragOver для продолжения операции и событие GiveFeedback с новым эффектом

Drop

Операция будет остановлена после перетаскивания. Значение эффекта перетаскивания возвращается источнику.

 



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры