OLEStartDrag

Происходит, когда выполняется метод компонента OLEDrag или когда компонент инициирует операцию перемещения OLE, когда для свойства OLEDragMode установлено значение Automatic.
Это событие определяет форматы данных и результаты перетаскивания, которые поддерживает компонент отправитель. Он может также использоваться для того, чтобы вставить данные в объект DataObject.

Синтаксис

Sub Form_StartDrag(data As DataObject, allowedeffects As Long)

Части синтаксической последовательности для события StartDrag приведены в таблице:

Часть

Описание

data
Объект DataObject, содержащий форматы, которые обеспечивает отправитель, и возможно, кроме того, данные для этих форматов. Если в DataObject никакие данные не содержатся, то таковые предоставляются, когда элемент управления вызывает метод GetData. Программисту следует устанавливать значения данного параметра в этом событии. Методы SetData и Clear здесь не могут быть использованы.
allowedeffects Длинное целое, содержащее результаты, которые поддерживает компонент отправитель. Допустимые значения представлены в таблице Установок. В этом событии значения данного параметра устанавливаются программистом.


Установки

Установки для параметра allowedeffects:

Константа

Установка

Описание

vbDropEffectNone
0
Получатель не может принять данные.
VbDropEffectCopy 1 Операция перетаскивания привела к передаче копии данных из источника в получатель. Исходные данные не изменяются в результате операции перетаскивания.
VbDropEffectMove 2 Операция перетаскивания привела к перемещению данных из источника в получатель. Отправитель должен уничтожить свои данные после перемещения.


Примечания

Компонент отправитель должен соединить посредством логической операции Or поддерживаемые значения и поместить результат в параметр allowedeffects. Компонент получатель может использовать это значение, чтобы определить подходящее действие (и какой должна быть подходящая обратная связь с пользователем).
Событие StartDrag происходит также, когда для свойства компонента OLEDragMode устанавливается значение Automatic. Это позволяет добавлять форматы и данные к объекту DataObject после того, как компонент уже выполнит эти действия. Можно переписать поведение компонента по умолчанию путем очистки объекта DataObject (с использованием метода Clear) и последующего добавления данных и форматов.

Можно отложить загрузку данных в объект DataObject до их запроса компонентом получателем. Это позволяет сэкономить время на загрузке в компонент отправитель множественных форматов данных. Когда компонент получатель выполняет метод GetData объекта DataObject, будет происходить событие компонента источника OLESetData, если запрашиваемые данные не содержатся в объекте DataObject. В этой точке могут быть загружены данные в объект DataObject, который в свою очередь будет обеспечивать данными получатель.

Если пользователь не загружает никаких форматов в объект DataObject, то операция перетаскивания отменяется.


Назад