Система Visual FoxPro поддерживает два режима для выполнения операций с Контролами (Элементами Управления) OLE Drag-And-Drop: 1) Внутренний (собственный) и 2) Управляемый (программный). В собственном режиме, операции "перетаскивания" (OLE drag-and-drop operations) контролируются самой системой Visual FoxPro. В ручном (управляемом ) режиме рассматриваемые операции осуществляются с помощью созданных вами программных процедур, функций и Контролов.

Собственный Режим для операций перетаскивания Элементов Управления ("OLE drag-and-drop")

Внутренний режим (Intrinsic Mode) для операций Перетаскивания может быть осуществлен в вашем Приложении для поддержки стандартных операций типа "OLE drag-and-drop" при взаимодействии вашего Приложения с внешними Приложениями без использования дополнительных программных методов и процедур.

Для обеспечения поддержки Внутреннего режима выполнения операций типа OLE drag-and-drop:

  1. Установите значение свойства OLEDragMode = 1 – (автоматически, обеспечивает стандартные процедуры для Источника рассматриваемой Операции).

  2. Установите значение свойства OLEDropMode = 1 – (включено, обеспечивает прием в месте назначения "перетаскиваемого" Контрола.

Для внутреннего режима выполнения операций перетаскивания (OLE drag-and-drop), система Visual FoxPro автоматически определяет формат, или возможность поддержки формата перетаскиваемого Объекта в месте назначения; если формат перетаскиваемого Объекта поддерживается, то указанная операция выполняется, в противном случае - операция перетаскивания не выполняется.

В следующей далее Таблице приводится Список стандартных Контролов Visual FoxPro и соответствующие им Форматы Данных, поддерживаемые для Внутреннего Режима операций Перетаскивания. Рекомендуется использовать константу CF_TEXT для Текстовых Объектов (TextBox), а константу: CFSTR_VFPSOURCEOBJECT вместе со сылкой на стандартный Контрол или Объект Visual FoxPro. Для Контролов, которые не поддерживают формат данных, определенный в CF_TEXT (имеют значение формата меньше чем значение данной константы), рекомендуется выполнять операции "перетаскивания" по-частям, отдельными фрагментами.

Форматы Контролов, как Источников для операций Перетаскивания
Контролы Формат Объекта (определенный в файле: Foxpro.h)

Container, Image, Line, PageFrame, Shape

CFSTR_VFPSOURCEOBJECT

CommandButton, Label

CFSTR_VFPSOURCEOBJECT, CF_TEXT

CheckBox, ComboBox, EditBox, ListBox, Spinner, TextBox

CFSTR_VFPSOURCEOBJECT, CF_TEXT, CFSTR_OLEVARIANT

Контролы и Объекты системы Visual FoxPro, которые поддерживают Форматы данных в Месте Назначения при операциях Перетаскивания для Внутреннего режима (intrinsic mode) приводятся в следующей далее Таблице. Для указанных Контролов, вы можете перетаскивать выделенные фрагменты Текста из источника Данных. Перетаскиваемый фрагмент Текста вставляется в точку Перетаскивания (Места Назначения).

Форматы Контролов, как Мест Назначения при операциях Перетаскивания
Контролы Формат Объекта

EditBox,  ComboBox (если  для ComboBox Style = 0 - (Dropdown Combo))

CF_TEXT

Spinner,  TextBox

CFSTR_OLEVARIANT

Ручной (управляемый) режим операций "OLE drag-and-drop"

Возможны случаи из практики, когда вам понадобится управлять по собственному желанию Контролами или Форматами перетаскиваемых Объектов, или обеспечить специфическую, дополнительную функциональносить для обрабатываемых Объектов. Например, вам требуется выполнить дополнительное Преобразование получаемых Данных при операции Перетаскивания, или необходимо уточнить у Пользователя выбираемый вариант преобразования данных, или уточнения некоторой характеристики. Для отмены стандартного Внутреннего режима выполнения операций перетаскивания (OLE drag-and-drop), или получения больших функциональных возможностей обработки форматов перетаскиваемых данных применяется режим Управляемой (контролируемой) операции Перетаскивания (Manual OLE Drag-And-Drop).

Для осуществления поддержки Управляемой операции OLE drag-and-drop:

  • Разработайте собственные программные кода для соответствующих Методов и Событий рассматриваемой операции Пекретаскивания Контролов или Объектов.

В ключите стандартную Команду NODEFAULT в указанные Методы и События, что обеспечит отключение выполнения Стандартных программных Кодов рассматриваемых Методов и Событий, осуществляющих Внутренний механизм поддержки операций Перетаскивания.

Система Visual FoxPro обеспечивает Обратную Совместимость (без поддержки операций типа: OLE drag); в этом случае для Контролов устанавливается значение свойства OLEDragMode = 0 (по-умолчанию), а разработчик не переопределяет основные программные коды Событий и Методов, используемых в операциях перетаскивания Данных (OLE drag-and-drop).

См. также