OLEDragDrop

Возникает, когда компонент отправитель перетаскивается на компонент получатель, когда компонент отправитель определяет, что перетаскивание может произойти.

Замечание Это событие происходит, только если параметру OLEDropMode присвоено значение 1 (Manual).

Синтаксис

Sub Form_OLEDragDrop(data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Label1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Command1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Pic1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Text1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub MText1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub TextBox1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub List1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Combo1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub LCombo1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Img1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Frame1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)
Sub Skin1_OLEDragDrop(
data As DataObject, effect As Long, button As Integer, shift As Integer, x As Single, y As Single)

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

Часть

Описание

1 Целое число, однозначно определяющее элемент управления, если он находится в массиве элементов управления
data
Объект DataObject, содержащий форматы, которые обеспечивает отправитель и возможно, кроме того, данные для этих форматов. Если в объекте DataObject никакие данные не содержатся, то таковые предоставляются, когда элемент управления вызывает метод GetData. Методы SetData и Clear здесь не могут быть использованы.
effect Длинное целое, устанавливается компонентом получателем чтобы опознать действие, которое выполнено (если таковое имеется). Позволяет источнику выбрать соответствующее действие, если компонент был перемещен (как, например, при удалении данных источником). Допустимые значения представлены в таблице Установок.
button Целое, которое выступает в качестве двоичного поля, соответствующего состоянию кнопки мыши. Левой кнопке соответствует 0 бит, правой кнопке 1 бит, и средней кнопке 2 бит. Эти биты соответствуют значениям 1, 2, и 4, соответственно. Указывает состояние кнопок мыши. Можно устанавливать значения некоторых, всех, или не устанавливать ни одного из этих трех битов, указывая, что нажаты некоторые, все, или не нажата ни одна из кнопок мыши.
shift Целое, играющее роль двоичного поля, соответствующего состоянию клавиш SHIFT, CTRL, и ALT. Клавиша SHIFT соответствует 0 биту, клавиша CTRL 1 биту, и клавиша ALT 2 биту. Эти биты соответствуют значениям shift 1, 2, и 4, соответственно. Параметр shift указывает состояние этих клавиш. Можно установить некоторые, все или не устанавливать никакие из этих битов, чтобы указать, что некоторые или все клавиши нажаты или ни одна из клавиш не нажата. Например, если нажаты клавиши CTRL и ALT, то shift имеет значение 6.
x, y Числа, которые указывают текущее положение курсора мыши. Значения x и y всегда выражаются в единицах системы координат, задаваемой свойствами объекта ScaleHeight, ScaleWidth, ScaleLeft и ScaleTop.


Установки

Установки параметра effect:

Константа

Установка

Описание

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


Примечания

Компонент отправитель ActiveX должен всегда маскировать значения параметра effect, чтобы гарантировать совместимость с будущими применениями компонентов ActiveX. В настоящее время используются только три из 32 битов параметра effect. В будущих версиях Visual Basic могут быть использованы другие биты. Поэтому, в качестве меры предосторожности, источники и получатели должны маскировать эти значения надлежащим образом перед выполнением любых сравнений.
Например, компонент отправитель не должен сравнивать параметр effect с установкой vbDropEffectCopy так, как это показано ниже:

If Effect = vbDropEffectCopy...

Вместо этого, компонент отправитель должен маскировать значение или значения, которые отыскиваются, следующим образом:

If Effect And vbDropEffectCopy = vbDropEffectCopy...

-or-

If (Effect And vbDropEffectCopy)...

Это допускает определение новых результатов перетаскивания в будущих версиях Visual Basic с сохранением обратной совместимости с существующими программами.

Большинство компонентов поддерживают события перетаскивания OLE в ручном режиме, а некоторые поддерживают события перетаскивания OLE в автоматическом режиме.


Назад