Приднестровский государственный университет им. Т.Г. Шевченко
Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 14
Тема: «Технология Drag&Drop»
Цель работы:
изучение технологии Drag&Drop;
закрепление темы при создании приложений.
1. Технология Drag&Drop (перетаскивание) в пределах формы
При работе с приложениями Widows часто используется такой прием, когда пользователь может нажать над объектом левую кнопку мыши, и, не отпуская ее, переместить мышь в другое место. При этом образ объекта следует за курсором мыши. При отпускании кнопки объект перемещается в новое место (если это предусмотрено программистом). Такая технология называется Drag & Drop – перетаскивание (или перетащил и оставил).
Использование этой технологии придает программе профессиональный вид, а иногда даже делает интерфейс более удобным для пользователя. Реализовать это довольно просто. Но прежде всего надо уяснить следующее: объект может быть взят только оттуда и перетащен только туда, как это определил программист. Иными словами, для реализации этой технологии должен быть объект-источник Drag и объект-приемник Drop и с каждым объектом, чтобы он поддерживал Drag&Drop, необходимо поработать отдельно.
1.1. События перетаскивания
Private Sub Объект_DragDrop ([индекс As Integer,] source As Control, x As Single, y As Single)
|
Происходит при завершении операции drag&drop, т.е. перетаскиваемый объект находится в зоне объекта-приемника и кнопка мыши отпускается. Индекс определяет элемент массива, если имеется массив объектов. source – аргумент, определяющий перетаскиваемый элемент (содержимое). К нему могут добавляться методы и свойства (Sourse.Tag, Sourse.Visible и т.п.). Если используется несколько объектов для перетаскивания, то для определения типа элемента-приемника используется ключевое слово TypeOf с оператором If, а для однозначного определения объекта используется свойство Tag. x, y – текущие координаты мыши на форме или объекте. Всегда измеряются в единицах объекта-приемника. Событие используется для создания процедуры объекта-приемника после окончания перетаскивания для операторов, описывающих действия результата перетаскивания. |
Private Sub Объект_DragOver ([индекс As Integer,] source As Control, x As Single, y As Single, state As Integer) |
Происходит во время выполнения операции drag&drop, т. е. при нажатой кнопки мыши. Индекс определяет элемент массива, если имеется массив объектов. source – аргумент, определяющий перетаскиваемый элемент (содержимое). К нему могут добавляться методы и свойства (Sourse.Tag, Sourse.Visible и т.п.). x, y – текущие координаты мыши на форме или объекте. Всегда измеряются в единицах объекта-приемника. state – показывает мгновенное состояние перетаскиваемого объекта по отношению к области объекта-приемника (область цели) и принимает значения:
С помощью этого события создаются процедуры для визуализации операции перетаскивания (изменения курсора, подсвечивание объекта). |
