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

Оператор StatusBar

Оператор StatusBar

Назначение:

Показывает или прячет строку сообщений в рабочем окне MapInfo или выдает в ней сообщение.

Синтаксис:

StatusBar { Show | Hide } [ Message message ]

[ ViewDisplayPopup { On | Off } ]

[EditLayerPopup { On | Off } ] где

message - сообщение, которое будет показано в строке сообщений.

Описание:

Оператор StatusBar управляет отображением строки сообщений в рабочем окне MapInfo, а также позволяет печатать в ней сообщения из прикладной программы .

Чтобы напечатать сообщение в строке сообщений, используйте предложение Message.

StatusBar Message ”Вычисление координат...”

MapInfo автоматически заменит Ваше сообщение другими, когда пользователь будет перемещать указатель мышки по командам меню или кнопкам инструментальных панелей. Поэтому текст сообщения должен быть лаконичен, что бы пользователь успел его заметить и прочесть за короткий промежуток времени. По этой причине не советуем Вам помещать важные сообщения в строку сообщений. Для этих целей можно воспользоваться окном “Сообщения”, открываемым оператором Print.

Используйте параметр ViewDisplayPopup, позволяющий изменять вид строки сообщений. Если этот параметр установлен на значение “On”, то пользователь сможет изменять масштаб и положение курсора, устанавливаемых из строки сообщений.

Использование параметра EditLayerPopup позволяет пользователю устанавливать редактируемый слой в окне Карты из строки сообщений. Если этот параметр установлен на значение “On”, то пользователь сможет выбирать редактируемый слой из строки сообщений.

592

Справочник MapBasic

Оператор Stop

Оператор Stop

Назначение:

Приостанавливает выполнение прикладной программы для отладки.

Синтаксис:

Stop

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

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

Описание:

Оператор Stop является отладочным средством. Оператор приостанавливает выполнение программы и передает управление пользователю. В данном случае пользователь – это программист, который отлаживает свою программу.

Если программа была приостановлена при активном окне MapBasic, то в нем выводится сообщение с номером строки программы, в которой был выполнен оператор Stop. Если окно MapBasic не было открыто, то оно будет открыто.

Далее пользователь может использовать окно MapBasic для исследования текущего состояния программы. Если набрать:

?Dim

вокне MapBasic, то MapInfo выведет список всех используемых локальных переменных в программе. Если набрать:

?Global

вокне MapBasic, то MapInfo выведет список всех используемых глобальных переменных в программе.

Задав после знака вопроса имя переменной, пользователь может получить ее текущее значение.

Пользователь сам может присвоить значение какой-нибудь переменной. Формат присвоения следующий:

? variable_name = new_value

где variable_name – имя локальной или глобальной переменной, и new_value – выражение, представляющее новую величину для этой переменной.

Для продолжения выполнения приостановленной программы надо выполнить команду ФАЙЛ > ПРОДОЛЖИТЬ ПРОГРАММУ в MapInfo. Продолжить выполнение программы также можно, введя в окно MapBasic оператор Continue.

В режиме остановки (после оператора Stop) MapInfo продолжает держать открытым файл приложения. Поэтому ег нельзя перекомпилировать. Поэтому выйдите из режима остановки командой ФАЙЛ > ПРОДОЛЖИТЬ ПРОГРАММУ, если хотите перекомпилирвать файл.

Оператор Stop не может быть использован внутри процедуры-обработчика диалога и внутри процедуры функции.

Справочник MapBasic

593

Функция Str$( )

Функция Str$( )

Назначение:

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

Синтаксис:

Str$(expression)

где

expression – выражение, результатом которого является число или величина типа Date, Pen, Brush, Symbol, Font и Object

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

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

Описание:

Функция Str$( ) возвращает строку, которая представляет величину, полученную в результате вычисления выражения expression.

Если параметром expression является отрицательное число, то результатом будет строка, начинающаяся с символа знака минус (-). Если число положительно, то строка начинается с пробела.

Длина строки, возвращаемая функцией Str$( ), зависит от точности вычисления выражения expression и количества цифр справа от запятой. Другими словами, функция Str$( ) вернет строку, используя округленную величину. Если Вы хотите управлять преобразованием, воспользуйтесь функций Format$( ).

Если величина в expression имеет объектный тип (Object), функция Str$( ) вернет одно из значений, представленных в следующей таблице:

Графический объект

Строка в результате

Дуга

"Arc"

Окружность, эллипс

"Ellipse"

Рамка

"Frame"

Прямая линия

"Line"

Точечный объект

"Point"

Полилиния, ломаная

"Polyline"

Регион, область, многоугольник

"Region"

Прямоугольник

"Rectangle"

Скругленный прямоугольник

"Rounded Rectangle"

Текстовый объект

"Text"

594

Справочник MapBasic

Функция Str$( )

Если параметр expression задает объект (тип Object) выражением в форме tablename.obj (где tablename – имя открытой таблицы) и если к текущей строке таблицы не присоединен графический объект, то функция Str$( ) вернет пустую строку. Замечание: передача неинициализированной объектной переменной приведет к тому, что функция Str$( ) вернет ошибку.

Если параметр expression задает дату (Date), функция Str$( ) вернет строку в формате, установленном в вычислительной системе, в которой выполняется эта прикладная программа. Например, следующее выражение:

Str$( NumberToDate(19951231) )

может быть равно и “12/31/1995”, и “1995/12/31”, в зависимости от того, какой формат использует пользователь в своем компьютере. Для управления форматом преобразования функцией Str$( ) используйте оператор Set Format.

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

Пример:

Dim s_spelled_out As String, f_profits As Float

f_profits = 123456

spelled_out = "Число улиц:" + Str$(f_profits)

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

Format$( ), FormatNumber$( ), Set Format, Val( )

Справочник MapBasic

595

Функция String$( )

Функция String$( )

Назначение:

Строит строку, повторяя символ заданное количество раз.

Синтаксис:

String$(num_expr, string_expr)

где

num_expr – положительное целочисленное выражение; string_expr – строковое выражение.

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

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

Описание:

Функция String$( ) возвращает строку, состоящую из первых символов строки, заданной параметром string_expr. Параметр num_exp задает длину будущей строки (в символах).

Пример:

Dim filler As String

filler = String$(5, "ABCDEFGH")

'

'переменная filler равна строке "AAAAA"

'(5 раз повторяется первая буква)

'

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

Space$( )

596

Справочник MapBasic

Функция StringCompare( )

Функция StringCompare( )

Назначение:

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

Синтаксис:

StringCompare(string1, string2)

где

string1 и string2 – строковые выражения.

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

Короткое целое число -1, 1 или 0. Величина типа SmallInt.

Описание:

MapBasic, сравнивая строки с использованием операции "=", не учитывает разницу между прописными и строчными буквами. Например, в операторе:

If "ABC" = "abc" Then

сравнение возвращает TRUE (истину).

Функция StringCompare( ) позволяет делать сравнения строк, рассматривая строчные и прописные буквы как разные. Сравнение строк происходит посимвольно. Как только встречаются два разных символа, выполнение функции прекращается.

Резльтат

Что это значит

-1

Код символа из первой строки меньше, чем код соответствующего символа

 

из второй строки.

0

Две строки равны.

1

Код символа из первой строки больше, чем код соответствующего символа

 

из второй строки.

Пример:

n = StringCompare("ABC", "abc")

'

'переменная n будет равна 1,

'т. к. ANSI код "A" меньше "a".

Справочник MapBasic

597

Функция StringCompareIntl( )

Функция StringCompareIntl( )

Назначение:

Сравнивает две строки, учитывая особенности сортировки для разных языков.

Синтаксис:

StringCompareIntl(string1, string2)

где

string1 и string2 – строковые выражения.

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

Короткое целое число -1, 1 или 0. Величина типа SmallInt.

Описание:

Функция StringCompareIntl( ) позволяет сравнивать две строки, учитывая языковые особенности, заданные в программе Control Panel. В состав сравниваемых строк могут входить символы, используемые в других языках. Сравнение строк происходит посимвольно. Как только встречаются два разных символа, выполнение функции прекращается.

Результат

Что это значит

-1

Код символа из первой строки меньше, чем код соответствующего символа из

 

второй строки.

0Две строки равны.

1Код символа из первой строки больше, чем код соответствующего символа из второй строки.

598

Справочник MapBasic

Функция StringToDate( )

Функция StringToDate( )

Назначение:

Переводит строку в величину даты.

Синтаксис:

StringToDate(datestring)

где

datestring – строка, представляющая дату.

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

Дата. Величина типа Date.

Описание:

Функция StringToDate( ) создает из строки величину типа Date.

MapBasic интерпретирует данные в соответствии с форматами, которые установлены в компьютере, в котором работает программа. Если компьютер использует стандарт США, то дата представляется в формате Месяц/День/Год, но также существуют другие стандарты, принятые в других странах (например, День/Месяц/Год). Другим может быть также знак разделителя (например, точка вместо /).

Для использования стандарта США в функции StringToDate( ) независимо от установок в компьютере, используйте оператор Set Format. Замечание: Программы, откомпилированные MapBasic версии 3.0, автоматически используют только формат США, даже если не был использован оператор Set Format.

Если используется формат США, то параметр datestring должен содержать компоненты числа, месяца и года, разделенные косой чертой (/). Первые два символа задают месяц, значение которого должно находиться в диапазоне от 1 до 12. Два символа второй компоненты задают число, значение которого должно находиться в диапазоне от 1 до 31. Год может задаваться двумя или четырьмя символами. Если год не указан, то принимается значение настоящего года.

Замечание: Если Вы не уверены, какой формат будет использован для представления данных в той системе, где будет запускаться Ваша программа, используйте функцию NumberToDate( ) вместо StringToDate( ). На функцию NumberToDate( ) не влияют установки вычислительной платформы.

Пример:

Dim d_start, d_end As Date

Set Format Date ”US”

d_start = StringToDate(”12/17/92”)

d_end = StringToDate(”01/02/1995”)

Set Format Date ”Local”

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

NumberToDate( ), Set Format, Str$( )

Справочник MapBasic

599

Функция StyleAttr( )

Функция StyleAttr( )

Назначение:

Возвращает значение одной из компонент стиля оформления объекта: Pen, Brush, Font, или Symbol.

Синтаксис:

StyleAttr( style , attribute )

style - величина, выражающая стиль (величина типа Pen, Brush, Font или Symbol); attribute - цельночисленный код, управляющий результатом функции

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

Целое число или строка, в зависимости от значения параметра attribute.

Описание:

Функция StyleAttr( ) извлекает из величины типа Pen, Brush, Symbol или Font определенную компоненту.

Все типы в MapBasic являются сложносоставными. Например, определение стиля Brush состоит из трех компонентов: pattern, foreground color и background color. При вызове функции Style Attr( ), параметр attribute контролирует, какой из атрибутов возвращается.

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

Если параметр style является значением Pen, используйте одно значение из таблицы:

Значение attribute

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

BRUSH_PATTERN

Целое число (Integer), атрибут стиля Brush,

 

задающий номер штриха.

BRUSH_FORECOLOR

Целое число (Integer), атрибут стиля Brush,

 

задающий RGB-код цвета штриха.

BRUSH_BACKCOLOR

Целое число (Integer), атрибут стиля Brush,

 

задающий RGB-код цвета фона штриха или -1,

 

если фон прозрачный.

FONT_NAME

Атрибут стиля Font, задающий строку с именем

 

шрифта.

FONT_STYLE

Целое число (Integer) от 0 до 7, атрибут стиля Font

 

(0 = простой, 1 = жирный, и т.д.); см. Предложение

 

Font для более подробной информации.

FONT_POINTSIZE

Целое число (Integer), атрибут стиля Font,

 

задающий размер шрифта в точках.

 

Замечание: Если текстовый объект принадлежит

 

таблице, а не Отчету, то размер будет равен 0 и

 

высота букв будет определяться текущим

600 Справочник MapBasic

 

 

Функция StyleAttr( )

 

 

 

 

 

 

масштабом Карты.

FONT_FORECOLOR

Целое число (Integer), атрибут стиля Font,

 

 

задающий RGB-код цвета символов строки.

FONT_BACKCOLOR

Целое число (Integer), атрибут стиля Font,

 

 

задающий RGB-код цвета фона строки или -1, если

 

 

фон прозрачный. Если стиль шрифта включает

 

 

кайму, то задает RGB-цвет каймы.

Значение attribute

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

PEN_WIDTH

Целое число (Integer), атрибут стиля Pen,

 

 

задающий ширину линии в точках.

PEN_PATTERN

Целое число (Integer), атрибут стиля Pen,

 

 

задающий номер вида линии.

PEN_COLOR

Целое число (Integer), атрибут стиля Pen,

 

 

задающий RGB-код цвета линии.

PEN_INTERLEAVE

Логическое: TRUE если стиль пересекающихся

 

 

линий.

PEN_INDEX

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

 

 

линии из библиотеки линий.

SYMBOL_KIND

Целое число (Integer), тип символа: 1 - символ Map

 

 

Info версии 3.0; 2 - символ шрифта TrueType; 3 -

 

 

символ из растрового файла.

SYMBOL_CODE

Целое число (Integer), атрибут стиля Symbol,

 

 

задающий номер символа. Используется для типа

 

 

символа версии MapInfo 3.0 и TrueType.

SYMBOL_COLOR

Целое число (Integer), атрибут стиля Symbol,

 

 

задающий RGB-код цвета символа.

SYMBOL_POINTSIZE

Целое число (Integer) от 1 до 48, атрибут стиля

 

 

Symbol, задающий размер символа в пунктах.

SYMBOL_FONT_NAME

Строка (String), имя шрифта TrueType, который

 

 

используется как библиотека символов.

SYMBOL_FONT_STYLE

Целое число (Integer), задающее написание

 

 

символа TrueType (0 = нормальное написание, 1 =

 

 

жирное, и т.д.). Смотрите описание предложения

 

 

Symbol.

SYMBOL_ANGLE

Действительное число (Float), угол поворота

 

 

символа TrueType.

SYMBOL_CUSTOM_NAME

Строка (String), имя растрового файла.

SYMBOL_CUSTOM_STYLE

Целое число (Integer), задающее стиль для

 

 

растрового символа (0 = нормальное, 1 = показать

 

 

фон и т.д.). Смотрите предложение Symbol.

 

Справочник MapBasic

601

 

Функция StyleAttr( )

Ошибки:

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

Пример :

Воспользуемся функцией CurrentPen( ) для того, что бы узнать, какой установлен сейчас стиль линии в MapInfo, затем с помощью функции StyleAttr( ) узнаем толщину линии в пикселах.

Include ”mapbasic.def” Dim cur_width As Integer

cur_width = StyleAttr(CurrentPen(), PEN_WIDTH)

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

MakePen( ), MakeBrush( ), MakeFont( ), MakeSymbol( ) Pen( ), Brush( ), Font( ), Symbol( )

602

Справочник MapBasic

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