В данном разделе рассматриваются Основополагающие понятия Приложений, поддерживающих OLE Drag-And-Drop,что позволяет вам достаточно просто и эффективно использовать описываемые Инструмента в разрабатываемых пользовательских Приложениях.
Обычно манипулятор Мышь эффективно используется для выполнения операций типа "drag and drop" между соответствующими Приложениями и Контролами. К примеру, вы можете выделить некоторый Набор (подмножество) файлов в популярной системе Windows Explorer (Обычный Проводник). Далее вы можете нажать кнопку Мыши и удерживать ее во время выполнения операции перетаскивания выделенных файлов, для завершения операции "Перетаскивания" - достаточно освободить удерживаемую кнопку мышки в том месте, куда выполняется перетаскивание файлов, например: Диспетчер открытого Проекта Visual FoxPro. Или другой пример, вы можете выделить некоторый текстовый фрагмент в открытом Документе типа MS-Word, и описанным выше способом "перетащить" выделенный фрагмент Текст а в текстовый Контрол на открытой Форме Visual FoxPro. Во время выполнения операции "OLE drag-and-drop", указатель Мышки изменяет текущее изображение (свой Вид), что может иллюстрировать активную операцию OLE drag-and-drop.
Источник Перемещения (Объект)
Приложение или внешний Контрол, данные которого являются Источником Перетаскиваемых Объектов во внешнее Приложение.
В следующей таблице приводятся основные Свойства, События, Методы, которые доступны разработчику при рассмотрении Исходного Объекта Перетаскивания.
Свойства, События, Методы | Краткое Описание |
---|---|
Событие происходит в тот момент, когда требуемые данных перемещены в пункт назначения, или когда операция перетаскивания отменена. |
|
Начинает выполнение операции перетаскивания (OLE drag-and-drop operation). |
|
Определяет изображение (вид) указателя Мышки при выполнении операции Перетаскивания. Вы можете указывать следующие поддерживаемые типы графических файлов: .bmp, .dib, .jpg, .gif, .ani, .cur, .ico . |
|
Определяет вариант управления выполнение операции Перетаскивания (OLE drag operations). |
|
Происходит после каждого события OLEDragOver. Позволяет анализировать Тип выполняемой операции перетаскивания для исходного Объекта. |
|
Происходит в тот момент, когда в месте Назначения выполняется метод GetData, или когда отсутствуют Данные в заданном формате для объекта DataObject в результате выполнения операции Перетаскивания. |
|
Происходит в тот момент, когда выполнен соответствующий метод OLEDrag. |
Место Назначения (Адресат-Получатель)
Является Приложением или внешним Контролом, которые являются местом Назначания перемещаемых Данных (или Объектов) (drop target).
В следующей таблице приводится список Свойств, Событий , Методов, доступных для объектов назначения перемещаемых Элементов, в результате выполнения операции перетаскивания (OLE drop target).
Свойства и События | Краткое Описание |
---|---|
Происходит в тот момент, когда перемещаемые данные уже находятся в Объекте назначения, и когда свойство OLEDropMode = 1 – (Включено) - Объект готов к Приему Внешних Данных. |
|
Происходит в тот момент, когда перетаскиваемые данные уже находятся над местом назначения, и когда свойство OLEDropMode = 1 – (Включено) - Объект готов к Приему Внешних Данных. |
|
Определяет тип Операции Приема, которые поддерживаются для компоненты Приема внешних данных (OLE drop target). |
|
Определяет, как управляется операция Приема внешних данных. |
|
Определяет, как в Месте Назначения выполняется операция приема внешних Данных. |
Перенос Данных
Для выполнения операции перетаскивания (drag-and-drop) Данных обычно используется левая кнопка Мышки, сначала требуемые данные выделяются в Исходном Источнике Данных. Далее - выделенные данных с помощью нажатия и удерживания левой кнопки мышки перемещаются в Место Назначения, чтобы перетаскиваемый объект располагался над указанным местом назначения. При отпускании удерживаемой кнопки мышки перетаскиваемые данные поступают в Место назначения. Во время выполнения описанной операции типа "OLE drag-and-drop", изображение (вид) указателя мышки изменяется (отличается от стандартного), что иллюстрирует для Пользователя текущую Активность выполняемой Операции Перетаскивания Данных.
Вы можете также нажать правую кнопку мышки для веделенной группы Объектов ("Right-Click"). В зависимости от Места назначения перемещаемых данных, может быть отображено Контекстное Меню, предусмотренные подпункты которого могут выполнить соответствующие операции для выделенной группы Объектов. Описанное выше контекстное меню может содержать также варианты обработки Перетаскиваемых Данных.
Копирование Данных
Вы можете выполнить обычную операцию Копирования требуемых Данных из исходного Иточника в соответствующее Место Назначения. Для этого: нажмите и удерживайте клавишу Ctrl и одновременно нажмите кнопку Мышки на требуемом Объекте Перемещения. Указатель мышки отображается как значек Плюс (+) во время выполнения операции по копированию - перетаскиванию выбранных Данных.
Источники и Адресаты, для которых не поддерживаются операции типа "OLE drag-and-drop"
Вы можете выполнить операции Перемещения или Копирования по принципу "OLE drag-and-drop" только для Перемещаемых Объектов и Объектов Назначения (адресатов), которые полностью поддерживают описываемый принцип перемещения Контролов (или Данных) "OLE drag-and-drop". Обратите внимание, что несмотря на то, что Место Назначения поддерживает операции типа "OLE drag-and-drop", однако перемещаемые данные не могут быть приняты в силу того, что данные представлены в неподдерживаемом Формате. Обычно описываемые выше Операции завершаются Аварийно в силу несогласованности Форматов передаваемых - получаемых Данных. При выполнении описываемых операций курсор мышки не изменяет своего изображения (Вида), что иллюстрирует невозможность принять перетаскиваемые Данные. Указатель мышки может иметь также вид "No Drop" (зачеркнутый кружек), что также иллюстрирует невозможность приема переданных данных в месте назначения.
Завершение Описываемых Операций
Вы можете прервать выполнение операций типа "OLE drag-and-drop", для этого достаточно нажать клавишу <ESC>.