Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Оператор DDEPoke

Оператор DDEPoke

Назначение:

Посылает данные в программуLсервер по каналу DDELсвязи.

Предупреждение:

Использование этого оператора возможно только в среде Microsoft Windows.

Синтаксис:

DDEPoke channel, itemname, data

где

channel – номер открытого канала DDELсвязи, целое число;

itemname – имя элемента объекта, документа программыLсервера, строковая величина; data – символьная строка, посылаемая в itemname.

Описание:

Оператор DDEPoke посылает данные по каналу DDELсвязи в объект программыLсервера.

Параметр channel – это целое число, полученное в результате выполнения функции DDEInitiate( ) перед оператором DDEPoke.

Параметр itemname задает элемент, который соответствует определенному каналу channel. Каждая программа, поддерживающая DDELсвязь, обладает некоторым набором объектов. О списке объектов, сопровождающих определенную программу, Вы можете прочитать в соответствующей документации.

Для DDELсвязи с документом программы Excel именем элемента является строка, такая как "R1C1" (или “С1К1” в русской версии Excel) для ячейки в первой строке и первой колонке. Именем элемента может быть также имя глобальной переменной из другой программы, если с этой программой открыт канал связи.

Ошибки:

Оператор может генерировать следующие коды ошибок: ERR_CMD_NOT_SUPPORTED, если программа выполняется не в среде Windows; ERR_INVALID_CHANNEL, если неправильно задан номер канала.

Пример 1:

В этом примере посылается сообщение ("Привет от MapInfo!") в первую ячейку рабочей таблицы. Этот пример выполняется при условии, что Excel уже загружен и рабочая таблица (Sheet1) открыта и находится в режиме редактирования ячеек.

Dim chan_num As Integer

chan_num = DDEInitiate("EXCEL", "Sheet1")

DDEPoke chan_num, "R1C1", "Привет от MapInfo!"

Пример 2:

В этом фрагменте глобальной переменной "Address" из программы DISPATCH.MBX посылается новое значение:

i_chan_num = DDEInitiate("MapInfo","C:\DISPATCH.MBX")

DDEPoke i_chan_num, "Address", "23 Main St."

Смотрите также:

DDEExecute, DDEInitiate, DDERequest$( )

Справочник MapBasic

175

Функция DDERequest$( )

Функция DDERequest$( )

Назначение:

Возвращает данные, запрошенные через канал DDELсвязи.

Предупреждение:

Использование этой функции возможно только в среде Microsoft Windows.

Синтаксис:

DDERequest$(channel, itemname)

где

channel – номер открытого канала DDELсвязи, целое число;

itemname – имя объекта для возвращаемой информации, строковая величина.

Величина, полученная в результате:

Строка. Величина типа String.

Описание:

Функция DDERequest$( ) возвращает информацию через канал DDELсвязи. Если информация недоступна, функция возвращает пустое значение ("").

Параметр channel задает номер канала, открытого при помощи функции DDEInitiate( ). Параметр itemname задает элемент, который соответствует каналу channel. Каждая программа, поддерживающая DDELсвязь, обладает некоторым набором объектов. О списке объектов,

сопровождающих определенную программу, Вы можете прочитать в соответствующей документации. В следующей таблице две первые колонки содержат значения, которые были использованы функцией DDEInitiate( ) при открытии канала связи с Excel, как сервером, а во второй колонке соответствующие значения для параметра itemname в функции DDERequest$( ).

Имя объекта обмена

Значения itemname и результат функции

"System"

"Sysitems" для получения списка имен элементов, которые

 

доступны по каналу обмена для "System";

 

"Topics" для получения списка объектов для DDELсвязи с

 

Excel, включая имена всех открытых рабочих таблиц;

 

"Formats" для получения списка форматов для системного

 

буфера (Clipboard), поддерживаемых Excel (например, "TEXT,

 

BITMAP ...").

wks (имя таблицы Excel)

"RnCn" для получения строки с содержимым ячейки (здесь

 

первый символ n должен быть номером строки,

 

а второй – номером колонки).

Замечание: С помощью функции DDERequest$( ) можно считывать значения глобальных переменных одной программы в другую, выполняющуюся в то же время.

Следующая таблица приводит комбинации значений itemname и объектов обмена, с которыми открыта связь, для MapInfo как сервера.

176

Справочник MapBasic

Функция DDERequest$( )

Имя объекта обмена

Значения itemname и результат функции

"System"

"Sysitems" для получения списка имен элементов,

 

которые доступны по каналу обмена для "System";

 

"Topics" для получения списка имен объектов для DDEL

 

связи с MapInfo, включая имена выполняемых в данный

 

момент прикладных программ;

 

"Formats" для получения списка форматов для

 

системного буфера (Clipboard ), поддерживаемых MapL

 

Info (например, "TEXT");

 

"Version" для получения числа, по которому можно

 

определить версию MapInfo (например, "300" означает

 

MapInfo 3.0)

mbx (MBXLимя программы)

"{items}" для получения списка имен глобальных

 

переменных выполняющейся программы;

 

имя глобальной переменной для получения ее текущего

 

значения.

Ошибки:

В результате выполнения оператора могут генерироваться следующие коды ошибок: ERR_CMD_NOT_SUPPORTED, если программа запущена не в системе Windows; ERR_INVALID_CHANNEL, если неправильно задан номер канала; ERR_CANT_INITIATE_LINK, если MapBasic не связан с этим объектом обмена.

Пример 1:

В этом примере функция DDERequest$( ) читает содержимое первой ячейки рабочей таблицы. Пример работает, если Excel уже загружен.

Dim chan_num As Integer

Dim cell As String

chan_num = DDEInitiate("EXCEL", "Sheet1") cell = DDERequest$(chan_num, "R1C1")

Пример 2:

Следующий пример подразумевает, что уже действует другая MapBasicLпрограмма под названием "Dispatch", в которой определена глобальная переменная "Address". С помощью функции DDERequest$( ) мы можем получить значение этой переменной.

Dim chan_num As Integer

Dim addr_copy As String

chan_num = DDEInitiate("MapInfo", "C:\DISPATH.MBX") addr_copy = DDERequest$(chan_num, "Address")

Справочник MapBasic

177

Оператор DDETerminate

Оператор DDETerminate

Назначение:

Закрывает канал DDELсвязи.

Предупреждение:

Использование этого оператора возможно только в среде Microsoft Windows.

Синтаксис:

DDETerminate channel

где

channel – номер открытого канала DDELсвязи, целое число.

Описание:

Оператор DDETerminate закрывает канал динамического обмена данными, который был открыт функцией DDEInitiate( ).

Параметр channel является целым числом, которое было возвращено функцией DDEInitiate( ). Проделав необходимые Вам действия по обмену, необходимо завершить его закрытием канала одним из операторов DDETerminate или DDETerminateAll.

Каждая из программ может открывать и закрывать только свои каналы.

Ошибки:

В результате выполнения оператора могут генерироваться следующие коды ошибок: ERR_CMD_NOT_SUPPORTED, если программа выполняется не в среде Windows; ERR_INVALID_CHANNEL, если неправильно задан номер канала.

Пример:

DDETerminate i_chan_num

Смотрите также:

DDEInitiate, DDETerminateAll

178

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]