Происходит, когда data перетаскивается на целевой объект операции drop и свойство этого объекта OLEDropMode установлено в 1 – Enabled.

PROCEDURE Object.OLEDragDrop
LPARAMETERS oDataObject, nEffect, nButton,
  nShift,   nXCoord, nYCoord

Expand imageВозвращаемое значение

oDataObject

Объектная ссылка на OLE drag-and-drop DataObject, используемый методами GetData и GetFormat для возврата данных и их формата в DataObject.

nEffect

Значение, посылаемое событию OLECompleteDrag, указывающее действие, производимое, когда данные будут брошены на целевой объект операции drop. nEffect является начальным значение, указывающим, что операции OLE drag-and-drop поддерживаются источником данных, то есть объектом операции drag. Внутри события OLEDragDrop вы можете изменить значение nEffect , которые посылается событию OLECompleteDrag. Если вы изменили значение nEffect, убедитесь, что включили в процедурный код события команду NODEFAULT, для предотвращения поведения по умолчанию. В приведенной ниже таблице перечислены значения для nEffect, которые вы можете послать событию OLECompleteDrag, с описанием каждого действия.

nEffect константа Foxpro.h Описание

0

DROPEFFECT_NONE

Целевой объект операции Drop не принимает данных и операция прекращается.

1

DROPEFFECT_COPY

Данные копируются из источника в целевой объект.

2

DROPEFFECT_MOVE

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

4

DROPEFFECT_LINK

Данные не копируются и не перемщаются, а лишь связываются ссылкой с целевым объектом.

nButton

Содержит число, которое указавыет - какая клавиша мыши была отпущена, когда данные были брошены на целевой объект: 1 (левая), 2 (правая) или 4 (средняя).

nShift

Содержит число, определяющее состояние ключей-модификаторов, которое было в момент, когда была отпущена клавиша мыши для "бросания" данных на целевой объект. Действительными ключами-модификаторами являются SHIFT, CTRL и ALT. Значение, возвращаемое в nShift для индивидуальных ключей-модификаторов перечислены в приведенной ниже таблице.

nShift Ключ модификатора

1

SHIFT

2

CTRL

4

ALT

Если более чем один ключ-модификатор удерживался пользователем, когда была нажата клавиша мыши, то аргумент nShift будет содержать сумму значений для ключей модификаторов. Например, если пользователь удерживал нажатой клавишу CTRL, когда отпускал клавишу мыши, то аргумент nShift будет содержать 2. Но если пользователь удерживал нажатыми одновременно CTRL+ALT пока отпускал клавишу мыши, то аргумент nShift будет содержать 6.

nXCoord, nYCoord

Содержит горизонтальную (nXCoord) и вертикальную (nYCoord) позиции указателя мыши внутри формы, в момент, когда была отпущена ее клавиша для "бросания" данных на целевой объект операции drop. Эти координаты выражаются в терминах координатной системы формы и в единицахз измерения, определяемых значением свойства формы ScaleMode.

Expand imageПримечания

Применяется к: CheckBox | ComboBox | CommandButton | CommandGroup | Container Object | Control Object | EditBox | Form | Grid | Image | Label | Line | ListBox | OptionButton | OptionGroup | Page | PageFrame | ProjectHook Object | Shape | Spinner | TextBox | ToolBar

OLEDragDrop представляет собой событие операции drop целевого объекта, которое происходит только в случае, если свойство OLEDropMode для элемента управления или объекта, являющихся целевыми объектами операции, установлено в 1 – Enabled. Это событие не происходит, если свойство OLEDropMode установлено в 0 – Disabled или 2 – Pass to Container.

Если вы производите свою собственную обработку операции drop в событии OleDragDrop, включите команду NODEFAULT для предотвращения дефолтной обработки операции drop. В этом случае, вы должны установить результирующее значение для аргумента nEffect.

Expand image Смотрите также