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

Функция IsPenWidthPixels()

Функция IsPenWidthPixels()

Назначение:

Функция IsPenWidthPixels определяет в каких величинах измеряется ширина линии - в пикселах или в пунктах.

Синтаксис:

IsPenWidthPixels ( penwidth )

penwidth - это малое целое, определяющее ширину линии.

Возвращаемое значение:

Истинно, если ширина линии задана в пикселах, ложно, если ширина задана в пунктах.

Описание:

Функция IsPenWidthPixels( ) возвранит истинное значение, если ширина линии задана в пикселах. Ширина линии может быть определена использованием функции StylAttr( ).

Пример:

Include “MAPBASIC.DEF”

Dim CurPen As Pen

Dim Width As Integer

Dim PointSize As Float

CurPen = CurrentPen()

Width = StyleAttr(CurPen, PEN_WIDTH)

If Not IsPenWidthPixels(Width) Then

PointSize = PenWidthToPoints(Width)

End If

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

CurrentPen(), MakePen(),Pen, PenWidthToPoints()

Справочник MapBasic

293

Оператор Kill

Оператор Kill

Назначение:

Удаляет файл с диска.

Синтаксис:

Kill filespec

где

filespec – строка, представляющая имя файла и, если необходимо, DOS-маршрут.

Описание:

Оператор Kill удаляет файл с диска. Действие оператора нельзя отменить потом, поэтому рекомендуется применять его с осторожностью.

Пример:

Kill ”C:\TEMP\JUNK.TXT”

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

Open File

294

Справочник MapBasic

Функция LabelFindByID( )

Функция LabelFindByID( )

Назначение:

Инициализирует внутренний указатель подписи, так что Вы можете запросить подпись из определенной строки в слое Карты.

Синтаксис:

LabelFindByID(map_window_id , layer_number , row_id , table , b_mapper)

map_window_id – целочисленный индекс окна id, определяющий окно Карты;

layer_number – номер слоя в текущем окне Карты (например, 1 для верхнего слоя);

row_id – положительное целочисленное значение, указывающее номер строки, в которой запрашивается подпись;

table – имя таблицы или пустой строки (“”): когда Вы делаете запрос к таблице, входящей в сшитую таблицу, укажите имя такой таблицы, входящей в сшитую; в противном случае, укажите пустую строковую переменную;

b_mapper – логическая величина. “Да” (TRUE) при запросе подписей, которые появляются при активном окне Карты; “Нет” (FALSE) при запросе подписей, которые появляются, когда Карта помещена в Отчет.

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

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

Описание:

Вызывайте LabelFindByID( ) когда Вы хотите запросить подпись из определенной строки в слое Карты. Если величина, полученная в результате – “Да” (TRUE), то подпись существует в строке, и Вы можете запросить подпись вызовом функции Labelinfo( ).

Пример:

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

Include ”mapbasic.def”

Dim b_morelabels As Logical

Dim i_mapid As Integer

Dim obj_mytext As Object

Open Table ”World” Interactive As World

Map From World

i_mapid = FrontWindow()

Set Map Window i_mapid Layer 1 Label Auto On

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

Update Window i_mapid

Теперь посмотрим, подписана ли автоматически строка # 1

Справочник MapBasic

295

Функция LabelFindByID( )

b_morelabels = LabelFindByID(i_mapid, 1, 1, ””, TRUE)

If b_morelabels Then

’ Объект подписан, теперь запросим его подпись.

obj_mytext = LabelInfo(i_mapid, 1, LABEL_INFO_OBJECT)

’ В этом месте

Вы можете

сохранить объект obj_mytext

’ в

постоянной

таблице;

или можете запросить его

’ с

помощью функций ObjectInfo() или ObjectGeography().

End If

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

LabelFindFirst( ), LabelFindNext( ), Labelinfo( )

296

Справочник MapBasic

Функция LabelFindByID( )

Функция LabelFindFirst( )

Назначение:

Инициализирует внутренний указатель подписи, так что Вы можете запросить первую подпись на слое Карты.

Синтаксис:

LabelFindFirst(map_window_id , layer_number , b_mapper)

map_window_id – целочисленный индекс окна id, определяющий окно Карты;

layer_number – номер слоя в текущем окне Карты (например, 1 для верхнего слоя);

b_mapper – логическая величина. “Да” (TRUE) при запросе подписей, которые появляются при активном окне Карты; “Нет” (FALSE) при запросе подписей, которые появляются, когда Карта помещена в Отчет.

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

Логическая величина: “Да” (TRUE) означает, что подпись существует в определенном слое (либо подписи видимы в данный момент, либо пользователь их редактировал, либо эти редактированные подписи в данный момент невидимы).

Описание:

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

1.Установите внутренний указатель подписи MapBasic’а вызовом одной из следующих функций:

LabelFindFirst( ), LabelFindNext( ) или LabelFindByID( ).

2.Если функция, которую Вы вызвали на шаге 1, не возвращает “Нет” (FALSE), Вы можете запросить текущую подпись вызовом функции Labelinfo( ).

Для продолжения запроса дополнительных подписей, вернитесь к шагу 1.

Пример:

Для примера, смотрите Labelinfo( ).

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

LabelFindByID( ), LabelFindNext( ), Labelinfo( )

Справочник MapBasic

297

Функция LabelFindNext( )

Функция LabelFindNext( )

Назначение:

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

Синтаксис:

LabelFindNext(map_window_id , layer_number)

map_window_id – целочисленный индекс окна id, определяющий окно Карты;

layer_number – номер слоя в текущем окне Карты (например, 1 для внешнего слоя).

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

Логическая величина: “Да” (TRUE) означает, что указатель подписи передвинут к следующей подписи; “Нет” (FALSE) означает, что на этом слое более нет подписей.

Описание:

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

Пример:

Для примера смотрите Labelinfo( ).

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

LabelFindByID( ), LabelFindFirst( ), Labelinfo( )

298

Справочник MapBasic

Функция Labelinfo( )

Функция Labelinfo( )

Назначение:

Возвращает информацию о подписи на Карте.

Синтаксис:

Labelinfo( map_window_id , layer_number , attribute )

map_window_id – целочисленный индекс окна id, определяющий окно Карты; layer_number – номер слоя в текущем окне Карты (например, 1 для верхнего слоя); attribute – код, указывающий тип возвращаемой информации, см. таблицу ниже.

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

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

Описание:

Функция Labelinfo( ) возвращает информацию о подписи в окне Карты. Обратите внимание на то, что подписи отличаются от текстовых объектов. Для запроса текстовых объектов используйте функции ObjectInfo( ) или ObjectGeography( ).

Перед вызовом Labelinfo( ) Вы должны инициализировать внутренний указатель подписей MapBasic, используя функции LabelFindFirst( ), LabelFindNext( ) или LabelFindByID( ). Смотрите пример ниже.

Параметр attribute должен быть одним из кодов, которые приведены в следующей таблице; коды определены в MAPBASIC.DEF.

коды attribute

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

 

Labelinfo( )

 

 

LABEL_INFO_ANCHORX

Величина типа Float, указывает X-координату места

 

привязки подписи.

LABEL_INFO_ANCHORY

Величина типа Float, указывает Y-координату места

 

привязки подписи.

LABEL_INFO_DRAWN

Логическая величина; “Да” (TRUE) если подпись в

 

текущий момент видима.

LABEL_INFO_EDIT

Логическая величина; “Да” (TRUE) если подпись

 

редактировалась.

LABEL_INFO_EDIT_ANCHOR

Логическая величина; “Да” (TRUE) если подпись

 

переместилась.

LABEL_INFO_EDIT_ANGLE

Логическая величина; “Да” (TRUE) если угол наклона

 

подписи изменился.

LABEL_INFO_EDIT_FONT

Логическая величина; “Да” (TRUE) если шрифт

 

подписи изменился.

LABEL_INFO_EDIT_OFFSET

Логическая величина; “Да” (TRUE) если растояние в

 

точках от подписи до места прикрепления изменилось.

LABEL_INFO_EDIT_PEN

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

 

указки изменился.

Справочник MapBasic

299

Функция Labelinfo( )

LABEL_INFO_EDIT_POSITION

Логическая величина; “Да” (TRUE) если позиция

 

подписи (относительно места прикрепления)

 

изменилась.

LABEL_INFO_EDIT_TEXT

Логическая величина; “Да” (TRUE) если текст

 

подписи изменился.

LABEL_INFO_EDIT_TEXTARROW

Логическая величина; “Да” (TRUE) если стрелка

 

указки подписи изменилась.

LABEL_INFO_EDIT_TEXTLINE

Логическая величина; “Да” TRUE если указка

 

переместилась.

LABEL_INFO_EDIT_VISIBILITY

Логическая величина; “Да” (TRUE) если видимость

 

подписи установлена на “Скрыть” (OFF).

LABEL_INFO_OBJECT

Возвращает текстовый объект, который практически

 

является подписью. Эта функция позволяет

 

конвертировать подпись в текстовый объект, который

 

Вы можете сохранить в постоянной таблице.

LABEL_INFO_OFFSET

Целочисленное значение от 0 до 50, показывающее

 

расстояние (в точках) от подписи до места

 

прикрепления.

LABEL_INFO_POSITION

Целочисленное значение от 0 до 8, показывающее

 

положение подписи относительно места

 

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

 

соответствует одному из следующих кодов:

 

LAYER_INFO_LBL_POS_CC (0),

 

LAYER_INFO_LBL_POS_TL (1),

 

LAYER_INFO_LBL_POS_TC (2),

 

LAYER_INFO_LBL_POS_TR (3),

 

LAYER_INFO_LBL_POS_CL (4),

 

LAYER_INFO_LBL_POS_CR (5),

 

LAYER_INFO_LBL_POS_BL (6),

 

LAYER_INFO_LBL_POS_BC (7),

 

LAYER_INFO_LBL_POS_BR (8).

 

Наример, если подпись ниже и правее места

 

прикрепления, ее позиция обозначается кодом 8; если

 

подпись располагается выше и левее места

 

прикрепления, ее код будет 1.

LABEL_INFO_ROWID

Целочисленное значение, представляющее индекс ID

 

строки, в которой расположена подпись; возвращает 0,

 

если подписи не существует.

LABEL_INFO_SELECT

Логическая величина; “Да”(TRUE) если подпись

 

выбрана.

LABEL_INFO_TABLE

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

 

которой находится данная подпись. Используется при

 

работе с сшитой таблицей, в том случае, если Вам надо

 

узнать в какой из составляющих ее таблиц находится

 

данная подпись.

300

Справочник MapBasic

Функция Labelinfo( )

Пример:

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

Dim b_morelabels As Logical

Dim i_mapid, i_layernum As Integer

Dim obj_mytext As Object

’ В этом месте Вы присваиваете окну Карты ID индекс i_mapid,

’ и присваиваете слою номер i_layernum.

b_morelabels = LabelFindFirst(i_mapid, i_layernum, TRUE)

Do While b_morelabels

obj_mytext = LabelInfo(i_mapid, i_layernum, LABEL_INFO_OBJECT)

’ В

этом месте

Вы можете

сохранить объект obj_mytext

’ в

постоянной

таблице;

или можете запросить его,

’ вызывая функции ObjectInfo() или

ObjectGeography().

b_morelabels =

LabelFindNext(i_mapid,

i_layernum)

Loop

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

LabelFindByID( ), LabelFindFirst( ), LabelFindNext( )

Справочник MapBasic

301

Функция LayerInfo( )

Функция LayerInfo( )

Назначение:

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

Синтаксис:

LayerInfo(mapper_window_id, layer_number, attribute )

где

mapper_window_id – идентификатор окна Карты;

layer_number – номер слоя (1 – самый верхний слой); чтобы определить номер слоя в окне Карты, обратитесь к функции MapperInfo( ).

attribute – целочисленный код.

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

Тип величины зависит от значения attribute.

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

Многие коды в функции LayerInfo( ) используются только для "нормальных" слоев Карты, то есть функция не всегда применима к Косметическому слою, тематическому слою (слою, содержащему результат условного выделения) и слою с растровыми изображениями.

Описание:

Функция LayerInfo( ) возвращает информацию об определенном слое в окне Карты mapper_window_id. Параметр layer_number задает слой на карте (0 – Косметический слой, 1 – самый верхний слой, и т. д.). Параметр attribute должен принимать значения целочисленного кода, управляющего типом возвращаемой функцией информации. В следующей таблице в первой колонке приводятся для этих кодов имена, которые установлены в файле стандартных определений MapBasic MAPBASIC.DEF. Отсюда также можно запросить настройки Hotlink, используя аттрибуты Layer_Hotlink.

attribute code

LayerInfo( ) Возвращаемое значение

LAYER_INFO_NAME

Строка (тип String), содержащая имя таблицы,

 

данные которой представлены на этом слое. Если

 

слой Косметический, то строка будет

 

"Cosmetic1". Имя может быть использовано в

 

следующих операторах (например, Select).

LAYER_INFO_EDITABLE

Логическая величина (тип Logical),

 

показывающая, изменяем ли слой или нет;

 

TRUE если слой изменяемый.

LAYER_INFO_LBL_PARTIALSEGS

Логическая величина; TRUE если флажок Label

 

Partial Objects установлен для этого слоя.

LAYER_INFO_SELECTABLE

Логическая величина (тип Logical),

 

показывающая, доступен ли слой или нет; TRUE

 

если слой изменяемый.

LAYER_INFO_PATH

Строка (тип String), содержащая DOS0маршрут,

 

по которому находится файл таблицы, данные

 

которой представлены на этом слое.

302

Справочник MapBasic

Функция LayerInfo( )

LAYER_INFO_ZOOM_LAYERED

LAYER_INFO_ZOOM_MIN

LAYER_INFO_ZOOM_MAX

LAYER_INFO_COSMETIC

LAYER_INFO_DISPLAY

LAYER_INFO_OVR_LINE

LAYER_INFO_OVR_PEN

LAYER_INFO_OVR_BRUSH

LAYER_INFO_OVR_SYMBOL

LAYER_INFO_OVR_FONT

LAYER_INFO_LBL_CURFONT

Логическая величина (тип Logical), показывающая, применяется ли масштабный эффект для данного слоя; TRUE если масштабный эффект применяется.

Число (тип Float), минимальный порог для масштабного эффекта (в текущих в MapBasic единицах измерения расстояний). Для установки единиц измерения расстояний используется оператор Set Distance Units.

Число (тип Float), максимальный порог для масштабного эффекта.

Логическая величина (тип Logical). "Да" (TRUE), если данный слой косметический.

Целочисленный код (тип SmallInt), говорящий, как показывается слой:

LAYER_INFO_DISPLAY_OFF (слой не отображается);

LAYER_INFO_DISPLAY_GRAPHIC (объекты слоя появляются в “стандартном” стиле—стили хранятся в таблице);

LAYER_INFO_DISPLAY_GLOBAL (объекты слоя появляются в “измененном” стиле, определенном в диалоге Управление слоями);

LAYER_INFO_DISPLAY_VALUE (объекты в этом слое появляются в тематической раскраске)

Стиль линии, используемый для отображения линейных объектов.

Стиль линии, используемый для отображения контуров площадных объектов.

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

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

Стиль шрифта, используемый для отображения текстовых объектов.

Логическая величина.

Вприложениях, откомпилированных с MapBasic версии 4.0 или позднее результат всегда будет “Нет”.

Вприложениях, откомпилированных с MapBasic версии 3.x, результатом будет:

Справочник MapBasic

303

Функция LayerInfo( )

LAYER_INFO_LBL_FONT

LAYER_INFO_LBL_EXPR

LAYER_INFO_LBL_LT

LAYER_INFO_LBL_PARALLEL

LAYER_INFO_LBL_POS

LAYER_INFO_LBL_VISIBILITY

304

"Да" (TRUE), если слой использует текущую установку для стиля шрифта, или "Нет" (FALSE), если слой использует специальную установку для стиля шрифта (смотрите

LAYER_INFO_LBL_FONT).

Стиль шрифта для подписей.

Строка с текстом подписи.

Целочисленный код (тип SmallInt), показывающий, какой тип указки используется:

LAYER_INFO_LBL_LT_NONE (если нет указки)

LAYER_INFO_LBL_LT_SIMPLE (если указка является простой линией)

LAYER_INFO_LBL_LT_ARROW (если указка является линией со стрелкой)

Логическая величина: "Да" (TRUE), если на слое разрешено поворачивать подписи.

Целочисленный код (тип SmallInt), показывающий ориентацию подписи (литера T обозначает верх, литера B – низ, C – центр, R – право, L – лево):

LAYER_INFO_LBL_POS_TL

LAYER_INFO_LBL_POS_TC

LAYER_INFO_LBL_POS_TR

LAYER_INFO_LBL_POS_CL

LAYER_INFO_LBL_POS_CC

LAYER_INFO_LBL_POS_CR

LAYER_INFO_LBL_POS_BL

LAYER_INFO_LBL_POS_BC

LAYER_INFO_LBL_POS_BR

Целочисленная величина, типа Smallint, соответствующая режиму показа подписей на слое (смотрите предложение Visibility оператора Set Map). Результатом будет один из следующих кодов:

LAYER_INFO_LBL_VIS_ON (если подписи на слое видимы)

LAYER_INFO_LBL_VIS_OFF (если подписи на слое невидимы)

Справочник MapBasic

 

Функция LayerInfo( )

 

 

 

LAYER_INFO_LBL_VIS_ZOOM (если подписи

 

видимы в результате масштабного эффекта)

LAYER_INFO_LBL_ZOOM_MIN

Действительная величина (тип Float),

 

минимальное значение показа подписей при

 

масштабном эффекте.

LAYER_INFO_LBL_ZOOM_MAX

Действительная величина (тип Float),

 

максимальное значение показа подписей при

 

масштабном эффекте.

LAYER_INFO_LBL_AUTODISPLAY Логическая величина: TRUE, если слой

 

подписывается автоматически. Смотрите

 

предложение Auto оператора Set Map.

LAYER_INFO_LBL_OVERLAP

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

 

позволяется пересечение подписей.

LAYER_INFO_LBL_DUPLICATES

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

 

позволяется дублирование подписей.

LAYER_INFO_LBL_OFFSET

Целочисленная величина типа Smallint о 0 до 50,

 

смещение от подписи до центроида

 

подписываемого объекта в точках.

LAYER_INFO_LBL_MAX

Целочисленная величина типа Integer,

 

максимальное число подписей, разрешенное для

 

этого слоя. Если такое число не назначено, то

 

возвращается число 2 147 483 647.

LAYER_INFO_LBL_PARTIALSEGS

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

 

флажок Label Partial Segments для этого слоя

 

установлен.

LAYER_INFO_ARROWS

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

 

линейных объектах используется стрелка.

LAYER_INFO_NODES

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

 

показываются узлы объектов слоя.

LAYER_INFO_CENTROIDS

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

 

показываются центроиды объектов слоя.

LAYER_INFO_SELECTABLE

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

 

изменяемый.

LAYER_INFO_PATH

Строка, полный путь к таблице,

 

ассоциированной со слоем карты.

LAYER_INFO_TYPE

Короткое целое, показывающее тип слоя:

 

LAYER_INFO_TYPE_NORMAL для обычного

 

слоя;

 

LAYER_INFO_TYPE_COSMETIC для

 

Косметического слоя;

 

LAYER_INFO_TYPE_IMAGE для растрового

 

слоя;

Справочник MapBasic

305

Функция LayerInfo( )

 

LAYER_INFO_TYPE_THEMATIC для

 

тематического слоя.

 

LAYER_INFO_TYPE_GRID для грида.

LAYER_HOTLINK_EXPR

Возвращает выражение имени файла для

 

Hotlink.

LAYER_HOTLINK_MODE

Возвращает режим Нotlink для слоя, одно из

 

следующих предопределенных значений:

 

HOTLINK_MODE_LABEL

 

HOTLINK_MODE_OBJ

 

HOTLINK_MODE_BOTH

LAYER_HOTLINK_RELATIVE

Возвращает "ДА" (True), если указан

 

относительный адрес.

Пример

Многие коды из приведенных выше не применимы к Косметическому слою, тематическому

слою и слою с растровым изображением. Функцию LayerInfo( ) с аргументом LAYER_INFO_TYPE используют для определения, каким является слой. Например:

i_lay_type = LayerInfo( map_id, layer_num, LAYER_INFO_TYPE)

If i_lay_type = LAYER_INFO_TYPE_NORMAL Then

’ ... then this is a ”normal” layer

End If

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

MapperInfo( )

306

Справочник MapBasic

Оператор Layout

Оператор Layout

Назначение:

Открывает новое окно Отчета.

Синтаксис:

Layout

[ Position (x, y) [ Units paperunits ] ]

[ Width window_width [ Units paperunits ] ] [ Height window_height [ Units paperunits ] ] [ { Min | Max } ]

где

paperunits – имя единицы измерения (например, "in" – дюйм);

x, y – координаты левого верхнего угла окна Отчета в определенных единицах измерения; window_width – ширина окна;

window_height – высота окна.

Описание:

Оператор Layout создает новое пустое окно Отчета.

Ключевые слова Max и Min используются для открытия окна Отчета на все рабочее окно MapInfo или свертывания в иконку. В системе Macintosh окно не может быть свернуто, поэтому ключ Min игнорируется.

Предложения Width и Height определяют ширину и высоту окна Отчета. Но эти характеристики не влияют на размеры страницы макета. Для назначения размеров страниц и их количества используйте оператор Set Layout.

MapInfo организовывает для каждого окна Отчета специальную, скрытую таблицу, которой дается имя Layoutn. Первому открытому окну Отчета дается имя Layout1 и так далее. Программа, написанная на MapBasic, может создавать, выбирать или изменять объекты в окне Отчета, обращаясь к нему по этому имени. Например, следующий оператор выбирает все объекты в окне Отчета:

Select * From Layout1

Пример:

В следующем примере создается окно Отчета в два дюйма шириной и четыре высотой. Верхний левый угол окна располагается в верхнем левом углу рабочей области MapInfo.

Layout Position (0,0) Width 2 Height 4

Справочник MapBasic

307

Функция LCase$( )

Функция LCase$( )

Назначение:

Возвращает строку, преобразуя все прописные буквы в строчные.

Синтаксис:

LCase$(string_expr)

где

string_expr – строковое выражение.

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

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

Описание:

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

Преобразованию подвергаются только буквы: латинские – от A до Z, и русские – от А до Я. Цифры и другие текстовые символы не преобразуются. Например, функция LCase$("A#12a") равна "a#12a".

Пример:

Dim regular, lower_case As String

regular = "Вышний Волочек"

lower_case = Lcase$(regular)

'

' Первый элемент массива равен строке "вышний волочек",

'

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

Proper$( ), UCase$( )

308

Справочник MapBasic

Функция Left$( )

Функция Left$( )

Назначение:

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

Синтаксис:

Left$(string_expr, num_expr)

где

string_expr – строковое выражение;

num_expr – численное выражение, результат которого ноль или более.

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

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

Описание:

Функция Left$( ) возвращает строковую величину, полученную из исходной строки, представленной выражением string_expr, путем выделения первых символов. Количество символов задается вторым параметром num_expr.

В результате вычисления выражения num_expr должно получаться целое положительное число, не равное нулю. Если численный параметр меньше единицы, то функция Left$( ) вернет пустую строку. Если численный параметр num_expr больше, чем число символов в строке string_expr, результат функции Left$( ) будет равен строке, представленной выражением string_expr.

Пример:

Dim whole, partial As String

whole = "Казахстан" partial = Left$(whole, 5)

'

' переменная partial теперь равна строке "Казах"

'

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

Mid$( ), Right$( )

Справочник MapBasic

309

Функция LegendFrameInfo( )

Функция LegendFrameInfo( )

Назначение

Возврашает информацию о разделе в легенде.

Синтаксис

LegendFrameInfo( window_id, frame_id, attribute )

window_id - число, указывающее какое окно легенды Вы хотите опросить.

frame_id - число, указывающее какой раздел в окне легенды Вы хотите опросить. Разделы пронумерованы от 1 до n где n это номер в легенде.

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

Возвращаемое значение

Оно зависит от параметра атрибутов.

Коды атрибута

FRAME_INFO_TYPE

FRAME_INFO_MAP_LAYER_ID FRAME_INFO_REFRESHABLE

FRAME_INFO_POS_X

FRAME_INFO_POS_Y

FRAME_INFO_WIDTH FRAME_INFO_HEIGHT FRAME_INFO_TITLE FRAME_INFO_TITLE_FONT

FRAME_INFO_SUBTITLE FRAME_INFO_SUBTITLE_FONT FRAME_INFO_BORDER_PEN FRAME_INFO_NUM_STYLES FRAME_INFO_VISIBLE

Возвращает одно из следующих предопределенных констант, определяющих тип раздела:

FRAME_TYPE_STYLE

FRAME_TYPE_THEME

Возвращает индекс id слоя, с которым соотносится раздел.

Возвращает true если раздел был создан без ключевого слова Norefresh. Всегда возвращает true для тематических разделов.

Возвращает расстояние от верхнего левого угла раздела до левого края канвы легенды (в бумажных единицах).

Возвращает расстояние от верхнего левого угла раздела до верхнего края канвы легенды (в бумажных единицах).

Возвращает ширину раздела (в бумажных единицах).

Возвращает высоту раздела (в бумажных единицах).

Возвращает заголовок раздела или тематического раздела.

Возвращает шрифт заголовка раздела. Возвращает стандартный шрифт заголовка, если раздел не имеет заголовка или это тематический раздел.

Возвращает подзаголовок раздела.

Шрифт подзаголовка раздела.

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

Возвращает число типа раздела. Ноль для тематического раздела.

Возвращает true если раздел видимый (тематические разделы могут быть невидимыми).

310

Справочник MapBasic

 

 

Функция LegendFrameInfo( )

 

 

 

FRAME_INFO_COLUMN

Возвращает атрибуты имени колонки для легенды в виде строки.

 

 

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

FRAME_INFO_LABEL

Возвращает выражение подписи в виде строки. Возвращает пустую

 

 

строку для тематического раздела.

Справочник MapBasic

311

Функция LegendInfo( )

Функция LegendInfo( )

Назначение

Возвращает информацию о легенде.

Синтаксис

LegendInfo( window_id, attribute )

window_id - это число, указывающее, какое окно легенды Вы опрашиваете.

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

Возвращаемое значение

Зависит от атрибута параметра.

 

Код атрибута

Описание

LEGEND_INFO_MAP_ID

Возвращает id материнского окна карты (можно так

 

же получить это значение из WindowInfo() с кодом

 

WIN_INFO_TABLE).

LEGEND_INFO_ORIENTATION

Возвращает предопределенное значение,

 

характеризующее ориентацию легенды:

ORIENTATION_PORTRAIT ORIENTATION_LANDSCAPE ORIENTATION_CUSTOM LEGEND_INFO_NUM_FRAMES

Возвращает ориентацию бумаги

Возвращает ориентацию бумаги

Возвращает ориентацию бумаги

Возвращает число разделов в легенде.

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

Функция LegendStyleInfo( )

312

Справочник MapBasic

Функция LegendStyleInfo( )

Функция LegendStyleInfo( )

Назначение

Возвращает информацию о стиле, используемом в разделе легенды.

Синтаксис

LegendInfo( window_id,, frame_id, style_id, attribute )

window_id - это число, указывающее, какое окно легенды Вы хотите опросить.

frame_id это число, определяющее, какой раздел в легенде Вы хотите опросить. Разделы пронумерованы от 1 до n где n это число всех разделов в легенде.

style_id это число, определяющее, какой стиль внутри раздела Вы хотите опросить. Стили пронумерованы от 1 до n где n это число стилей в разделе.

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

Возвращение

Код атрибутаОписание

LEGEND_STYLE_INFO_TEXTВозвращает текст стиля. LEGEND_STYLE_INFO_FONTВозвращает шрифт стиля. LEGEND_STYLE_INFO_OBJВозвращает объект стиля.

Сообщение об ошибке

Генерируется сообщение об ошибке, когда раздел не имеет стилей (тематический раздел).

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

LegendInfo( )

Справочник MapBasic

313

Функция Len( )

Функция Len( )

Назначение:

Возвращает количество символов в строке или число байтов в переменной.

Синтаксис:

Len(expr)

где expr – выражение (не используются типы Pen, Brush, Symbol, Font и Alias).

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

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

Описание:

Информация, которую несет величина, возвращаемая функцией Len( ), зависит от параметра expr.

Если выражение expr является строкой, то функция Len( ) вернет количество символов в строке.

Если expr – переменная MapBasic, то результат функции Len( ) будет размером переменной в байтах. Так, если тип переменной был объявлен как Integer (целое число), то функция Len( ) возвращает 4 (четыре), т. к. переменной типа Integer отводится 4 байта. Для переменной типа SmallInt (короткое целое число), результатом будет двойка, т. к. переменной типа SmallInt отводится 2 байта.

Пример:

Dim name_length As SmallInt

name_length = Len("Москва")

' переменная name_length равна 6

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

ObjectLen( )

314

Справочник MapBasic

Функция Like( )

Функция Like( )

Назначение:

Возвращает TRUE или FALSE, сравнивая строку с шаблоном.

Синтаксис:

Like(string, pattern_string, escape_char)

где

string – строка;

pattern_string – шаблон для сравнения, который является строкой, состоящей из регулярных и специальных символов;

escape_char – строковое выражение, задающее символ (например, "/"), отменяющий специальный символ, если он явно должен использоваться в шаблоне. Если отменяющий символ не назначается, то используется пустая строка (“”).

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

Логическая. Величина типа Logical.

Описание:

Функция Like( ) определяет, подходит ли строка string под шаблон pattern_string. Шаблон представляет собой строку из регулярных символов и специальных. При сравнении регулярные символы должны совпадать с соответствующими символами в строке string, причем строчные и прописные буквы различаются. Специальные символы задают неопределенное совпадение:

_ (знак подчеркивания)

соответствует одному символу;

% (percent)

соответствует нескольким символам или не одному.

Для явного задания знаков подчеркивания и процента они используются вместе с символом escape_char перед специальным. Примеры приведены в следующей таблице:

Критерий совпадения

 

Вызов функции

Начало с "South"

 

Like( string_var, "South%", "" )

 

Окончание "America"

 

Like( string_var, "%America", "" )

Используется "ing" в любом месте

 

Like( string_var, "%ing%", "" )

Начало с подчеркивания

 

Like( string_var, "\_%", "\")

Справочник MapBasic

315

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