OLEDragOver

Происходит, когда один компонент перетаскивается над другим.

Синтаксис

Sub Form_OLEDragOver(data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Label1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Command1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Pic1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Text1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub MText1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub TextBox1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub List1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Combo1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub LCombo1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Img1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Frame1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)
Sub Skin1_OLEDragOver(
data As DataObject, effect As Long, button As Integer, shift As Integer, x , y , state As Integer)

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

Часть

Описание

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


Установки

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

Константа

Установка

Описание

vbDropEffectNone
0
Получатель не может принять данные.
VbDropEffectCopy 1 Операция перетаскивания привела к копированию данных из источника в получатель. Исходные данные не изменяются в результате операции.
VbDropEffectMove 2 Операция перетаскивания привела к перемещению данных из источника в получатель. Отправитель должен удалить свои данные после перемещения.
VbDropEffectScroll -2147483648
(&H80000000)
Прокрутка происходит или подготавливается в компоненте получателе. Это значение используется в связи с другими значениями. Замечание Следует использовать только при выполнении пользовательской прокрутки в компоненте получателе.


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

Константа

Установка

Описание

vbEnter
0
Компонент отправитель перетаскивается в пределах компонента получателя.
vbLeave 1 Компонент отправитель перетаскивается вне окрестности компонента получателя.
vbOver 2 Компонент отправитель перемещается в компоненте получателе из одного положения в другое.


Примечания

Замечание Если параметр state имеет значение vbLeave, показывая, что указатель мыши находится левее компонента получателя, то параметры x и y содержат нулевые значения.
Компонент отправитель должен всегда маскировать значения параметра effect, чтобы гарантировать совместимость с будущими применениями компонентов ActiveX. В настоящее время используются только три из 32 битов параметра effect. В будущих версиях Visual Basic могут быть использованы другие биты. Поэтому, в качестве меры предосторожности, источники и получатели должны маскировать эти значения надлежащим образом перед выполнением любых сравнений.

Например, компонент отправитель не должен сравнивать параметр effect, с установкой vbDropEffectCopy так, как это показано ниже:
If Effect = vbDropEffectCopy...

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

If Effect And vbDropEffectCopy = vbDropEffectCopy...

-или-

If (Effect And vbDropEffectCopy)...

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

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


Назад