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

Предложение Symbol

Предложение Symbol

Назначение:

Задание стиля символа для точечного объекта.

Синтаксис (вариант 1 U версия для символов MapInfo 3.0):

Symbol(shape, color, size )

где

shape – целое число, величина типа Integer, от 31 или больше, задающий символ из стандартного набора MapInfo (значение 31 задает невидимый символ);

color – целочисленный код цвета в системе RGB (смотрите описание функции RGB( )); size – целое число, величина типа Integer, размер символа в точках от 1 до 48.

Синтаксис (вариант 2 U версия для символа из шрифта TrueType):

Symbol(shape, color, size, fontname, fontstyle, rotation )

где

shape – целое число, величина типа Integer, от 31 или больше, задающий символ из шрифта TruL eType (значение 31 задает невидимый символ);

color – целочисленный код цвета в системе RGB (смотрите описание функции RGB( )); size – целое число, величина типа Integer, размер симвла в точках от 1 до 48;

fontname – строка с именем шрифта TrueType (например, “WingDings”);

fontstyle – целочисленный код, величина типа Integer, управляющий написанием шрифта; rotation – вещественное число, угол поворота в градусах.

Синтаксис (вариант 3 U версия для символа из растрового файла):

Symbol(filename, color, size, customstyle )

filename – строка до 31 символа длиной с именем растрового файла (файл должен находиться в каталоге, заданном пользователем);

color – целочисленный код цвета в системе RGB (смотрите описание функции RGB( )); size – целое число, величина типа Integer, размер симвла в точках от 1 до 48;

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

Синтаксис (вариант 4):

Symbol symbol_expr

где

symbol_expr – выражение, результат которого есть величина типа Symbol, например, переменная типа Symbol или MakeSymbol(shape, color, size).

Описание:

Предложение Symbol позволяет задавать стиль символа для точечного объекта. Предложение не является отдельным оператором, но входит в состав многих операторов, работающих с точечными объектами. Например, в операторе Create Point предложение определяет стиль символа для нового объекта. Если предложение Symbol в этом операторе опущено, то будет использован текущий стиль символа, установленный в среде MapInfo.

Некоторые операторы MapBasic (такие как Alter Object...Info OBJ_INFO_SYMBOL) используют выражение типа Symbol как параметр без ключевого слова Symbol.

564

Справочник MapBasic

Предложение Symbol

Стандартный набор символов MapInfo 3.0

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

Стандартный набор символов состоит из символов, имеющих код от 31 до 67, однако пользователь может изменять и дополнять этот набор, используя приложение SYMBOL, программу, написанную на MapBasic и поставляемую в стандартном пакете MapInfo.

Символы шрифта TrueType

Если Вы задаете символ из шрифта TrueType, то параметр fontstyle управляет написанием символа:

Значение fontstyle

Написание

0

Нормальное

1

Жирное

16

Черная кайма

32

Оттененное

256

Белая кайма

Для задания двух или более стилей написания коды складываются. Например, для того, чтобы получить символ жирного и оттененного написания, параметр fontstyle должен быть равен 33. Написание 16 и 256 взаимоисключают друг друга.

Справочник MapBasic

565

Предложение Symbol

Растровый символ

Если Вы задаете новый символ, то параметр customstyle управляет, какими будут цвет и фон символа:

Значение customstyle

Стиль символа

0

Не действуют режимы из группы “Эффекты” диалога “Стиль символа”,

 

и символ появляется таким, какой он есть. Все белые пикселы растра

 

прозрачны.

1

Действует режим “Добавить фон”; все белые пикселы растра

 

непрозрачны.

2

Действует режим “Покрасить одним цветом”; все не белые точки растра

 

закрашены одним цветом.

3

Установлены оба флажка (действуют оба режима).

Пример:

Оператор Set Map может использовать предложение Symbol. В примере назначается стиль символов для показа точечных объектов первого слоя карты в виде кружочков (символ номер 34), закрашенных красным и размером в 18 пунктов.

Include ”mapbasic.def”

Set Map

Layer 1 Display Global

Global Symbol MakeSymbol(34,RED,18)

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

MakeFontSymbol( ), MakeCustomSymbol( ), MakeSymbol( ), StyleAttr( )

566

Справочник MapBasic

Функция SystemInfo( )

Функция SystemInfo( )

Назначение:

Возвращает информацию об активной операционной среде и версии программы MapInfo.

Синтаксис:

SystemInfo(attribute)

где

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

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

Тип результата зависит от значения параметра attribute. Величина типа SmallInt, Logical или String

Описание:

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

Значения attribute

SYS_INFO_APPLICATIONWND

SYS_INFO_APPVERSION

Результат, полученный SystemInfo( )

Целое число, уникальный номер Windows HWND, установленный оператором Set Application Window (или ноль, если HWND не устанавливался).

Целое число, соответствующее версии языка MapBasic, на котором было написана Ваша программа, и компилятора, умноженное на 100. Например, если версия 3.0, то функция вернет 300.

SYS_INFO_CHARSET

Возвращает имя используемой системы кодов.

SYS_INFO_COPYPROTECTED

Логическая величина: “Да” (TRUE), если пользователь

 

запустил защищенную от копирования версию MapInfo.

SYS_INFO_DATE_FORMAT

Строка: “US” или “Local”, соответствующие способу

 

форматирования даты. Смотрите описание оператора Set

 

Format.

SYS_INFO_DDESTATUS

Целочисленная величина, количество элементов в DDEL

 

очереди на выполнение. Если очередь пуста, то

 

SystemInfo( ) вернет ноль (если приходящие команды

 

будут выстраиваться в очередь) или L1 (если приходящие

 

команды будут немедленно выполняться).

SYS_INFO_DIG_INSTALLED

Логическая величина: “Да” (TRUE), если дигитайзер и

 

совместимый драйвер установлен.

Справочник MapBasic

567

Функция SystemInfo( )

SYS_INFO_DIG_MODE

Логическая величина: “Да” (TRUE), если включен режим

 

оцифровки.

SYS_INFO_MAPINFOWND

Целое число, представляющее номер Windows HWND

 

главного окна MapInfo. Функция возвращает 0, если

 

программа выполняется не в Windows.

SYS_INFO_MDICLIENTWND

Целое число, представляющее номер Windows HWND

 

для окна MapInfo MDICLIENT. Функция возвращает 0,

 

если программа выполняется не в Windows.

SYS_INFO_MIPLATFORM

Целое число, тип программы MapInfo:

 

MIPLATFORM_WIN16 (16–битная версия Windows)

 

MIPLATFORM_WIN32 (32–битная версия Windows)

SYS_INFO_MIVERSION

SYS_INFO_NUMBER_FORMAT

SYS_INFO_PLATFORM

SYS_INFO_PRODUCTLEVEL

SYS_INFO_RUNTIME

Целое число, соответствующее версии программы MapL Info, в которой Вы сейчас работаете, умноженное на 100 (сто). Например, если версия 3.00, то функция вернет 300.

Строка: “9,999.9” или “Local”, соответствующие способу форматирования чисел. Смотрите оператор Set Format.

Целочисленный код, определяющий операционную систему. Возвращенное число может быть одним из следующих кодов:

PLATFORM_WIN,

PLATFORM_MAC,

PLATFORM_MOTIF.

Целое число, отражающее уровень (product level) MapInfo (200 для MapInfo Professional).

Возвращает логическое "да" (TRUE) если работает runtL imeLверсия MapInfo, и логическое "нет" (FALSE), если иначе.

Ошибки:

В результате выполнения функции может генерироваться код ошибки: ERR_FCN_ARG_RANGE, если неправильно задано значение аргумента.

Пример:

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

Include "MAPBASIC.DEF"

Declare Sub DDE_Setup

If SystemInfo(SYS_INFO_PLATFORM) = PLATFORM_WIN Then

Call DDE_Setup

End If

568

Справочник MapBasic

Функция TableInfo( )

Функция TableInfo( )

Назначение:

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

Синтаксис:

TableInfo(table_id, attribute)

где

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

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

Строка, логическое значение, целое или короткое целое число. Величина типа String, Integer, SmallInt или Logical, в зависимости от значения параметра attribute.

Описание:

Функция TableInfo( ) используется для получения определенной информации об открытой таблице.

Первый параметр функции определяет, из какой таблицы была затребована информация. Параметр table_id может быть строкой с именем открытой таблицы или числом, равным ее номеру. Если значение параметра table_id равно 0, то функция будет опрашивать таблицу, которая была открыта или создана самой последней. Вы можете использовать функцию с нулевым первым параметром сразу после оператора Open Table, в котором предложение As не использовалось. Если в момент вызова функции TableInfo( ) не было открыто ни одной таблицы или все таблицы уже закрыты, то результатом функции будет ошибка.

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

Значения attribute

TAB_INFO_COORDSYS_CLAUSE

TAB_INFO_COORDSYS_MINX, TAB_INFO_COORDSYS_MINY, TAB_INFO_COORDSYS_MAXX, TAB_INFO_COORDSYS_MAXY

Результат TableInfo( )

Строка с предложением CoordSys, сооответствующим проекции таблицы, например “CoordSys Earth ProjecL tion 1, 0”. Возвращается пустая стока, если таблица не может иметь графические объекта.

Вещественные величины, минимальная и максимальная координаты по оси X и Y, которые могут быть сохранены в таблице. Если таблица не может иметь объектов, результатом будет ноль.

Справочник MapBasic

569

Функция TableInfo( )

TAB_INFO_COORDSYS_NAME

TAB_INFO_EDITED

TAB_INFO_FASTEDIT

TAB_INFO_MAPPABLE

TAB_INFO_MAPPABLE_TABLE

TAB_INFO_MINX,

TAB_INFO_MINY,

TAB_INFO_MAXX,

TAB_INFO_MAXY

TAB_INFO_NAME

TAB_INFO_NCOLS

TAB_INFO_NROWS

TAB_INFO_NUM

TAB_INFO_READONLY

TAB_INFO_SEAMLESS

TAB_INFO_TABFILE

TAB_INFO_TEMP

570

Строка с именем проекции, каким она названа в файле MAPINFOW.PRJ (но без суффикса “\p...”). Результатом будет пустая строка, если таблица не может иметь графические объекты или нет соответствия в файле MAPINFOW.PRJ.

Логическая величина: "Да" (TRUE), если таблица имеет несохраненные на диске изменения.

Логическая величина: "Да" (TRUE), если для редактирования таблицы включен режим FastEdit, и "Нет" (FALSE), если выключен. (Смотрите описание оператора Set Table, режим FastEdit.)

Логическая величина: "Да" (TRUE), если записям таблицы можно сопоставлять графические объекты.

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

Вещественное число, минимальная и максимальная координаты по оси X и Y, координаты углов минимального прямоугольного покрытия всех обектов таблицы.

Строка, имя таблицы.

Целое число (тип SmallInt), количество колонок в таблице.

Целое число (тип Integer), количество строк в таблице.

Целое число (тип SmallInt), номер открытой таблицы.

Логическая величина: "Да" (TRUE), если таблица открыта в режиме "только чтение".

Логическая величина: "Да" (TRUE), если для таблицы включен атрибут сшитости.

Строка с полным именем файла таблицы, включая DOSLмаршрут. Пустая стока возвращается для таблицы запроса.

Логическая величина: "Да" (TRUE), если таблица является временной (например, ЗАПРОС1).

Справочник MapBasic

Функция TableInfo( )

TAB_INFO_TYPE

TAB_INFO_UNDO

TAB_INFO_USERBROWSE

Целое число (тип SmallInt), код, определяющий вид таблицы:

TAB_TYPE_BASE, если таблица нормальная; TAB_TYPE_RESULT, если таблица запроса; TAB_TYPE_IMAGE, если таблица растровая; TAB_TYPE_VIEW, если таблица является представлением (view), например, таблица STREETL INFO является представлением; TAB_TYPE_LINKED, если таблица связанная.

Логическая величина: "Да" (TRUE), если для редактирования таблицы включена система обратных действий (Undo), и "Нет" (FALSE), если система выключена оператором Set Table.

Логическая величина: "Нет" (FALSE), если оператором

Set Table выключен режим UserBrowse.

TAB_INFO_USERCLOSE

Логическая величина: "Нет" (FALSE), если оператором

 

Set Table выключен режим UserDisplayMap.

TAB_INFO_USERDISPLAYMAP

Логическая величина: "Нет" (FALSE), если оператором

 

Set Table выключен режим UserDisplayMap.

TAB_INFO_USEREDITABLE

Логическая величина: "Нет" (FALSE), если оператором

 

Set Table выключен режим UserEdit.

TAB_INFO_USERMAP

Логическая величина: "Нет" (FALSE), если оператором

 

Set Table выключен режим UserMap.

TAB_INFO_USERREMOVEMAP

Логическая величина: "Нет" (FALSE), если оператором

 

Set Table выключен режим UserRemoveMap.

Ошибки:

В результате выполнения функции могут генерироваться коды ошибок: ERR_FCN_ARG_RANGE, если неправильно значение аргумента; ERR_TABLE_NOT_FOUND, если неправильно задана таблица или ее нет.

Пример:

Include "mapbasic.def"

Dim i_numcols As SmallInt, L_mappable As Logical

Open Table "world"

i_numcols = TableInfo("world", TAB_INFO_NCOLS)

L_mappable = TableInfo("world", TAB_INFO_MAPPABLE)

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

Open Table, Set Table

Справочник MapBasic

571

Функция Tan( )

Функция Tan( )

Назначение:

Вычисляет тангенс.

Синтаксис:

Tan(num_expr)

где num_expr – численное выражение.

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

Вещественное число. Величина типа Float.

Описание:

Функция Tan( ) возвращает тангенс от числа, полученного в результате вычисления num_expr. Число num_expr является угловой величиной в радианах.

Для перевода градусов в радианы число необходимо умножить на DEG_2_RAD. Для обратного конвертирования используется коэффициент RAD_2_DEG. Чтобы Ваша программа могла использовать эти коэффициенты конвертирования, она должна содержать оператор Include "MAPBASIC.DEF".

Пример:

Include "mapbasic.def"

Dim x, y As Float

x = 45 * DEG_2_RAD y = Tan(x)

'y равно 1,

'так как тангенс от 45 градусов равен 1

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

Acos( ), Asin( ), Atn( ), Cos( ), Sin( )

572

Справочник MapBasic

Функция TempFileName$( )

Функция TempFileName$( )

Назначение:

Возвращает имя, которое можно использовать при создании временного файла.

Синтаксис:

TempFileName$(dir)

где

dir – строка с маршрутом (диск+каталог), где будет создан временный файл; пустая строка ("") задает системный каталог для создания временных файлов.

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

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

Описание:

Функция TempFileName$( ) используется, когда Вам необходимо создать временный файл, но Вы не знаете, какое имя ему дать.

Если Вы вызвали функцию TempFileName$( ), MapBasic вернет строку с полным уникальным именем файла. Сама функция TempFileName$( ) не создает временный файл. Создать файл Вы можете оператором Open File.

Если параметр dir задан пустой строкой (""), то полное имя файла будет включать в себя системный каталог для временных файлов, например, "G:\TEMP\~MAP0023.TMP".

При работе в сети возможна ситуация, когда два пользователя одновременно могут создать временный файл на одном и том же месте, с одинаковым именем. Если Вы пробуете создать файл с именем и на каталоге, которые Вы получили от функции TempFileName$( ), может возникнуть конфликтная ситуация, потому что файл уже существует, так как другой пользователь сети успел создать его после того, как Ваша программа вызвала функцию TempFileName$( ), и до оператора создания файла. Для снижения вероятности такой конфликтной ситуации выполняйте оператор Open File непосредственно сразу после вызова функции TempFileName$( ). Для снижения вероятности сетевых конфликтов создайте обработчик ошибок и поместите оператор OnError после оператора Open File.

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

FileExists( )

Справочник MapBasic

573

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