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

Оператор Close Table

Оператор Close Table

Назначение:

Закрывает открытую таблицу.

Синтаксис:

Close Table table [ Interactive ]

где

table – имя открытой таблицы.

Описание:

Оператор Close Table используется для закрытия таблицы table. Для закрытия сразу всех открытых таблиц используется оператор Close All.

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

Если применить оператор Close Table к связанной таблице, которая имеет несохраненные изменения, то MapInfo запомнит изменения до следующего сеанса работы.

Сохранение изменений в таблице

Когда оператор Close Table применяется к таблице, в которой были произведены изменения и которые не были сохранены на диске, то при закрытии они будут утеряны. Сообщений об этом не выводится. Если Вы не хотите потерять текущие изменения в таблицах, используйте слово Interac tive для вывода на экран диалога, предлагающего пользователю сохранить или игнорировать изменения.

Если Вы хотите гарантировать несохранение изменений в таблице, используйте оператор RollBack перед ее закрытием. Аналогично, если Вы хотите гарантировать сохранение изменений в таблице, выполните оператор Commit Table перед оператором закрытия. Для определения, есть ли в таблице изменения, не сохраненные на диске, используется функция TableInfo(table,TAB_INFO_EDITED).

Сохранение тематических и косметических объектов

Если Вы закрываете таблицу, графические объекты которой показываются на единственном некосметическом слое окна Карты, то будет закрыто и это окно. Чтобы сохранить объекты Косметического и/или тематического слоев из этого окна, используйте ключевое слово Interactive. Если MapInfo обнаружит косметические и тематические объекты, то перед тем, как закрыть окно Карты, выведет сообщения, предлагающие пользователю сохранить объекты на диске или забыть о них. Сообщений не будет выводиться, если Вы использовали ключевое слово Interactive, но на Карте нет тематических слоев и объектов в Косметическом слое.

Пример:

Open Table "world"

Close Table world

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

Close All, Commit, Open Table, RollBack, TableInfo(_)

Справочник MapBasic

75

Оператор Close Window

Оператор Close Window

Назначение:

Закрывает или прячет окна.

Синтаксис:

Close Window window_spec [ Interactive ]

где

window_spec – имя окна (такое как Ruler ), код окна (такой как WIN_RULER ) или целое число, определяющее окно.

Описание:

Оператор Close Window закрывает или прячет окна MapInfo.

Для закрытия документального окна (окна Карты, Списка, Графика и Отчета) необходимо задать его целым числом в параметре window_spec. Это число помогут Вам определить операторы

FrontWindow(_) и WindowID(_).

Чтобы закрыть специальное окно или инструментальную панель, надо в параметре window_spec ввести специальное имя окна или его код. Вы можете окно "Линейка" задать именем Ruler или кодом WIN_RULER. В следующей таблице приводятся имена и коды для параметра window_spec:

Имя окна

Код окна

 

Описание окна

MapBasic.

WIN_MAPBASIC

 

Окно MapBasic

 

 

 

 

 

 

 

 

Help

WIN_HELP

 

Окно Справочной системы.

Statistics

WIN_STATISTICS

 

Окно "Статистика".

Legend

WIN_LEGEND

 

Окно "Легенда".

Info

WIN_INFO

 

Окно "Информация", которое открывается

 

 

 

инструментом Информация.

Ruler

WIN_RULER

 

Окно "Линейка", которое открывается инструментом

 

 

 

Линейка.

Message

WIN_MESSAGE

 

Окно "Сообщение", которое открывается оператором

 

 

 

 

 

 

Print.

 

 

 

 

 

 

Сохранение тематических и косметических объектов

Если Вы закрываете Карту, то пользователь может захотеть сохранить объекты с Косметического или тематических слоев. Для вывода сообщений, предлагающих пользователю сохранить эти объекты перед закрытием окна Карты, в операторе Close Window используется ключевое слово

Interactive.

Если ключевого слова нет в операторе, косметические и тематические объекты будут утеряны. Сообщений не будет выводиться, если Вы использовали ключевое слово Interactive, но на Карте нет тематических слоев и объектов в Косметическом слое.

Пример:

Close Window Legend

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

Open Window, Print, Set Window

76

Справочник MapBasic

Функция ColumnInfo( )

Функция ColumnInfo( )

Назначение:

Возвращает информацию о колонке в открытой таблице.

Синтаксис:

ColumnInfo({ tablename | tablenum },{ colomnname | "COLn" },attribute)

где

tablename – имя открытой таблицы;

tablenum – целое число, идентифицирующее таблицу; colomnname – имя колонки в этой таблице;

n – целое число как номер колонки в таблице;

attribute – код, управляющий типом результата функции.

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

Зависит от значения параметра attribute.

Описание:

Функция ColumnInfo(_) возвращает информацию об одной колонке в открытой таблице.

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

В следующей таблице в первой колонке приводятся имена кодов для использования в качестве параметра attribute. Имена присвоены целочисленным кодам для удобства. Эти определения находятся в файле MAPBASIC.DEF и, если Вы будете использовать имена, включите в начало Вашей программы оператор Include "MAPBASIC.DEF".

Значения attribute

COL_INFO_NAME COL_INFO_NUM COL_INFO_TYPE

COL_INFO_WIDTH

Результат ColumnInfo( ):

Имя колонки (строка).

Номер колонки (короткое целое число).

Тип колонки (короткое целое число). Смотрите вторую таблицу.

Ширина символьного или десятичного поля (короткое целое число). Используется только для символьных и десятичных колонок.

COL_INFO_DECPLACES

Число знаков после десятичной точки в поле

 

десятичного типа (короткое целое число).

COL_INFO_INDEXED

Признак индексирования колонки (логическая

 

величина).

 

 

COL_INFO_EDITABLE.

Признак наличия изменений значений колонки

 

 

(логическая величина)

 

 

 

 

Если функция ColumnInfo(_) имеет значение параметра attribute равным

Справочник MapBasic

77

Функция ColumnInfo( )

COL_INFO_TYPE, то возвращает одно из следующих:

Функция возвращает код

Тип колонки

 

 

COL_TYPE_CHAR

Символьный

 

 

COL_TYPE_DECIMAL

Десятичный с фиксированной запятой

COL_TYPE_FLOAT

Вещественный

COL_TYPE_INTEGER

Целочисленный (4 байт)

COL_TYPE_SMALLINT

Короткое целое число (2 байт)

COL_TYPE_DATE

Дата

COL_TYPE_LOGICAL

Логический (TRUE или FALSE)

 

 

COL_TYPE_GRAPHIC

Специальный тип колонки "Obj" (представляет

 

графические объекты, присоединенные к таблице)

Ошибки:

 

 

Функция вернет следующие коды ошибок: ERR_TABLE_NOT_FOUND, если не найдена данная таблица,

ERR_FCN_ARG_RANGE, если значение аргумента выходит за пределы, заданные при его определении.

Пример:

Include "MAPBASIC.DEF"

Dim s_col_name As String, i_col_type As SmallInt

Open Table "world"

s_col_name = ColumnInfo("world","col1",COL_INFO_NAME)

i_col_type = ColumnInfo("world","col1",COL_INFO_TYPE)

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

NumCols(_), TableInfo(_)

78

Справочник MapBasic

Функция Combine( )

Функция Combine( )

Назначение:

Возвращает либо объект типа "область", либо "полилиния", представляющий объединение двух объектов.

Синтаксис:

Combine(object1,object2)

где

object1, object2 – два объектных выражения, результатом вычисления которых должны быть либо два объекта, имеющих площадь (например, область и окружность), либо два линейных объекта (например, прямая линия и полилиния).

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

Область или полилиния. Величина типа Object.

Описание:

Функция Combine(_) возвращает объект, являющийся результатом географического объединения двух объектов. Объединение двух смежных объектов удаляет границу между ними.

Результат функции Combine(_) такой же как при выполнении географического объединения командой ОБ ЕКТЫ > КОМБИНАЦИЯ, за тем исключением, что функция создает новый объект, не меняя объектов object1 и object2. Кроме того, функция Combine(_) объединяет только объекты без данных.

Объект, полученный в результате выполнения функции Combine(_), оформляется так же, как объект object1.

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

Objects Combine

Справочник MapBasic

79

Функция CommandInfo( )

Функция CommandInfo( )

Назначение:

Возвращает информацию о последних внутрисистемных событиях.

Синтаксис:

CommandInfo(attribute )

где

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

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

Целое число или число с плавающей запятой, или строка, или логическая величина. Величина типа Integer, или типа Float, или типа String, или типа Logical.

Описание:

Функция CommandInfo(_) возвращает информацию о последних событиях в MapInfo. Например, какие изменения произошли во временной таблице "Selection", в какое место окна указал пользователь, использовал ли он только мышку или нажал на кнопку мышки в комбинации с клавишей SHIFT и так далее. Тип информации задается целочисленным кодом в параметре attribute. Для описания кодов будем использовать имена, которые назначены этим постоянным величинам в файле определений MAPBASIC.DEF. Если Вы хотите использовать имена кодов в Вашей программе, то она должна иметь строчку Include "MAPBASIC.DEF".

Вызов после закрытия диалога, построенного приложением

Вызывая функцию CommandInfo(_) сразу после закрытия окна диалога, Вы можете использовать в качестве параметра attribute один из следующих кодов:

Значение attribute

CMD_INFO_DLG_OK

CMD_INFO_STATUS

Результат CommandInfo(attribute)

Величина типа Logical: TRUE - если в диалоговом окне была выбрана кнопка OkButton; FALSE - если пользователь отменил диалог, нажав на кнопку CancelButton или на клавишу ESC. Этот код в функции предназначен только для информации о диалоговых окнах, вызываемых оператором Dialog.

Величина типа Logical: TRUE – если пользователь позволил процессу, снабженному диалогом со шкалой (смотрите оператор ProgressBar), завершиться самостоятельно; FALSE – если пользователь нажал на кнопку в этом диалоге, прекращающую выполнение.

Вызов из обработчиков новых меню и диалогов

Если приложение строит свои меню с элементами, вызывающими обработчик, или строит диалог, элементы которого вызывают процедуры-обработчики, то в этих процедурах Вы можете использовать функцию CommandInfo(_) со следующими кодами:

Значение attribute

Результат CommandInfo(attribute)

80

Справочник MapBasic

 

Функция CommandInfo( )

 

 

 

 

CMD_INFO_MENUITEM

Целое число (Integer), представляющее идентификатор элемента

 

меню, который запустил этот обработчик.

 

Этот код используется только внутри процедуры-обработчика

 

элемента меню.

 

 

CMD_INFO_DLG_DBL

Величина типа Logical: TRUE - если пользователь использовал при

 

указании на элемент списка элемент ListBox или MultiListBox

 

двойное нажатие на клавишу мышки.

 

Этот код используется только внутри процедуры-обработчика

 

элемента диалога, построенного приложением MapBasic.

 

 

Вызов из обработчиков системных событий

Если Ваше приложение имеет процедуры-обработчики системных событий (например, такую как SelChangedHandler), то в этих процедурах Вы можете использовать функцию CommandInfo(_) со следующими кодами:

Значение attribute

Результат CommandInfo(attribute)

Из процедуры Sel

 

 

ChangedHandler:

 

 

 

CMD_INFO_SELTYPE

1 – если строка была добавлена в выборку;

 

2 – если строка была исключена из предыдущей выборки;

 

3 – если все строки в таблице выбраны;

 

4 – если все строки таблицы были исключены из предыдущей

 

выборки.

CMD_INFO_ROWID

Целое число (Integer) – номер строки, которая была добавлена в

 

выбор или исключена из выбора (работает только, если одна строка

 

была выбрана или исключена из выбора).

CMD_INFO_INTERRUPT

Логическая величина (Logical). TRUE – если пользователь

 

прервал выбор клавишей ESC, FALSE – иначе.

Из процедуры RemoteMs

 

 

gHandler или RemoteQue

 

ryHandler( ):

 

 

 

CMD_INFO_MSG

Строка, представляющая собой “выполняемое” сообщение или имя

 

элемента послания MapInfo от программы-клиента. Детали

 

смотрите в описании процедур RemoteMsgHandler и

 

RemoteQueryHandler( ).

Из процедуры Win

 

 

ChangedHandler или Win

 

ClosedHandler:

 

 

 

Справочник MapBasic

81

Функция CommandInfo( )

CMD_INFO_WIN

Целое число (Integer), идентификатор окна, в котором было

 

изменение или которое было закрыто. Детали смотрите в описании

 

процедур WinChangedHandler и WinClosedHandler.

Из процедуры Foreground

 

 

TaskSwitchHandler:

 

 

 

CMD_INFO_TASK_SWIT

Целое число (Integer), указывающее, что MapInfo либо только что

CH

стало активным приложением, либо только что перестало быть

 

активным. Результатом может быть один из кодов:

 

SWITCHING_INTO_MAPINFO (если MapInfo получает фокус).

 

SWITCHING_OUT_OF_MAPINFO (если MapInfo теряет фокус).

 

 

Вызов после операции поиска

После выполнения оператора Find, параметр функции attribute может принимать одно из следующих значений:

Значение attribute

Результат CommandInfo(attribute)

CMD_INFO_FIND_RC

Целое число (Integer), код успеха поиска.

CMD_INFO_FIND_ROWID

Целое число (Integer), номер строки, которой соответствует

 

найденный объект.

CMD_INFO_X или

Действительное число, координата (по оси X или Y) найденного

CMD_INFO_Y

места.

Вызов из процедуры8обработчика инструмента

Внутри процедуры-обработчика инструмента ToolButton Вы можете использовать следующие коды:

Значение attribute

CMD_INFO_X

Результат CommandInfo(attribute)

X-координата точки, где была нажата кнопка мыши:

на Карте, долгота в установленных единицах и в соответствии с текущей в MapBasic системой координат;

вСписке, номер колонки в окне (единица соответствует самой левой колонке в окне);

вОтчете, расстояние между левым краем Отчета и указанной точкой в текущих "бумажных" единицах (ноль соответствует точке на левом крае листа Отчета).

82

Справочник MapBasic

 

Функция CommandInfo( )

 

 

 

 

CMD_INFO_Y

Y-координата точки, где была нажата кнопка мыши:

 

на Карте, широта в установленных единицах и в соответствии с

 

текущей в MapBasic системой координат;

 

в Списке, номер строки в окне (единица соответствует самой

 

верхней строке в окне);

 

в Отчете, расстояние между верхним краем Отчета и указанной

 

точкой в текущих "бумажных" единицах (ноль соответствует

 

точке на верхнем крае листа Отчета);

 

 

CMD_INFO_X2

X-координата точки, в которой пользователь отпустил кнопку

 

мыши. Использование этого кода возможно, если инструменту

 

был назначен режим рисования (например, использовался код

 

DM_CUSTOM_LINE).

 

 

CMD_INFO_Y2

Y-координата точки, в которой пользователь отпустил кнопку

 

мыши.

CMD_INFO_SHIFT

Логическая величина: TRUE (логическое "Да"), если

 

пользователь при указании нажал на клавишу SHIFT, FALSE

 

(логическое "Нет"), если эта клавиша при указании не была

 

нажата.

CMD_INFO_CTRL

Логическая величина: TRUE (логическое "Да"), если

 

пользователь при указании нажал на клавишу CTRL, FALSE

 

(логическое "Нет"), если эта клавиша при указании не была

 

нажата.

CMD_INFO_TOOLBTN

Целое число (Integer), идентификатор кнопки инструмента,

 

который вызвал этот обработчик.

 

 

CMD_INFO_CUSTOM_OBJ

Объектная величина: полилиния или многоугольник,

 

нарисованный пользователем. Применяется с режимами

 

рисования DM_CUSTOM_POLYLINE или

 

DM_CUSTOM_POLYGON.

 

 

После вызова Macintosh XCMD

В среде MapInfo для Macintosh Вы можете обратиться к Macintosh XCMD. После вызова XCMD, Вы можете использовать функцию CommandInfo( ) со следующими кодами:

Значение attribute

CMD_INFO_XCMD

Поддержка Геолинка (Hotlink)

Результат CommandInfo(attribute)

Строка, показывающая, произошла ли ошибка во время выполнения команды XCMD. Более подробно о XCMD можно прочитать в файле ..\MAPBASIC\DOC\MAC.DOC, появляющемся после установки пакета MapBasic.

Приложения MapBasic запущенные инструментом Геолинк (Hotlink) могут получить информацию об активном объекте через функцию CommandInfo. В таблице приведен список атрибутов

Справочник MapBasic

83

Функция CommandInfo( )

которые могут быть запрошены:

Значение attribute

Результат CommandInfo(attribute)

 

 

CMD_INFO_HL_WINDOW

Id окна карты или списка

_ID

 

 

 

CMD_INFO_HL_TABLE_N

Имя таблицы ассоциированной со слоем карты или окном

AME

списка

 

 

CMD_INFO_HL_ROWID

Id строки таблицы соответствующая соответствующее объекту

 

карты или записи в списке

 

 

CMD_INFO_HL_LAYER_I

id слоя, если программа была запущена из окна карты.

D

 

 

 

CMD_INFO_HL_FILENAM

Имя запущенного файла.

E

 

 

 

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

FrontWindow(_), SelectionInfo(_), Set Command Info, WindowInfo(_)

84

Справочник MapBasic

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