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

Предложение Control RadioGroup

Предложение Control RadioGroup

Назначение:

Часть оператора Dialog. Отвечает за создание кнопок переключателя.

Синтаксис:

Control RadioGroup

[ Position x, y ] [ ID control_ID ]

[ Calling handler ]

[ Title { str_expr | From Variable str_array_var } ] [ Value i_selected ]

[ Into i_variable ]

[ Disable ] [ Hide ]

где

x, y – координаты левого верхнего угла прямоугольника, в который вписываются кнопки переключателя, в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора Dialog);

control_ID – целое число, которое должно быть уникальным по отношению к остальным идентификаторам элементов активного диалога;

handler – имя процедуры-обработчика, которая запускается при указании на одну из кнопок; str_expr – строковое выражение, которое задает текст подписей справа от кнопок, где каждая подпись отделена от другой точкой с запятой (;), по количеству подписей определяется количество кнопок в переключателе;

str_array_var – имя массива строковых переменных;

i_selected – короткое целое число, задающее номер кнопки, которая будет выбрана при открытии диалога, по умолчанию выбирается первая кнопка;

i_variable – имя переменной типа SmallInt, которая будет использоваться для сохранения номера выбранной кнопки после закрытия диалога.

Ключевое слово Disable делает переключатель недоступным для выбора (закрашивается серым).

Ключевое слово Hide прячет переключатель из диалогового окна.

Описание:

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

Предложение Title задает список подписей для кнопок. Если за словом Title задан список текстов в кавычках, через точку с запятой, то каждый текст будет определять одну кнопку переключателя. Например:

Title "&Всё;В&ыборочно"

Список в предложении Title можно также задавать массивом. В следующем фрагменте s_optionlist – имя строкового массива.

Title From Variable s_optionlist

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

Предложение Control RadioGroup

Пример:

Control RadioGroup

Title "&Всё;В&ыборочно"

Value 2

ID 2

Into details

Calling rg_handler

Position 15, 42

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

Alter Control, Dialog, ReadControlValue( )

Справочник MapBasic

101

Предложение Control StaticText

Предложение Control StaticText

Назначение:

Часть оператора Dialog. Отвечает за создание текстового элемента в окне диалога, (неизменяемого текста).

Синтаксис:

Control StaticText

[ Position x, y ]

[ Width w ] [ Height h ] [ ID control_ID ]

[ Title title_string ] [ Hide ]

где

x, y – координаты левого верхнего угла прямоугольника, в который можно вписать строку, в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора

Dialog);

w – ширина подписи в единицах измерения диалога; h – высота подписи в единицах измерения диалога;

control_ID целое; не может быть таким же как ID другого элемента управления в диалоге title_string – текст.

Ключевое слово Hide прячет текстовый элемент из диалогового окна.

Описание:

Ключевое слово StaticText в предложении Control оператора Dialog позволяет создавать тексты в окне диалога. Элемент GroupBox в окне диалога выполняет оформительскую роль, и потому не может иметь значения. Однако, если элемент StaticText задан в операторе сразу до или после элемента EditText, то клавишное сокращение в тексте StaticText можно использовать для перехода в окошко элемента EditText.

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

Пример:

Control StaticText

Title "Заголовок Карты:"

Position 5, 10

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

Alter Control, Dialog

102

Справочник MapBasic

Функция ConvertToPline( )

Функция ConvertToPline( )

Назначение:

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

Синтаксис:

ConvertToPLine(object)

где

object – объект для преобразования любого типа, кроме текстового и точечного.

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

Полилиния. Величина типа Object.

Описание:

Функция ConvertToPline(_) возвращает объект типа "полилиния", которая описывает объект object. Так, если object задает область, то функция ConvertToPline(_) вернет ломаную линию, представляющую границу области, и с тем же количеством узлов.

Результат функции ConvertToPline(_) такой же, как при выполнении команды ОБ ЕКТЫ > ПРЕВРАТИТЬ В ПОЛИЛИНИИ, за тем исключением, что функция создает новый объект, не меняя объект object.

Справочник MapBasic

103

Функция ConvertToRegion( )

Функция ConvertToRegion( )

Назначение:

Возвращает область по форме заданного объекта.

Синтаксис:

ConvertToRegion(object)

где

object – объект для преобразования любого типа, кроме текстового и точечного.

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

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

Описание:

Функция ConvertToRegion(_) возвращает область, имеющую такую же форму, какую имеет объект object. Так, если параметр object задает объект типа "прямоугольник", то функция ConvertToRe gion(_) вернет область такой же прямоугольной формы.

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

Результат функции ConvertToRegion(_) такой же, как при выполнении команды ОБ ЕКТЫ > ПРЕВРАТИТЬ В ОБЛАСТИ, за тем исключением, что функция создает новый объект, не меняя объект object.

104

Справочник MapBasic

Функция ConvexHull( )

Функция ConvexHull( )

Назначение:

Возвращает объект-регион, который представляет собой полигон-контур, созданный на основании узлов входного объекта. Он содержит минимальное количество точек (т.е. точки входного объекта лежат на границах или внутри полигона). Т.е. все внешние углы созданного полигона-контура больше, чем 180 градусов.

Синтаксис:

ConvexHull ( inputobject)

inputobject - оконтуриваемый объект

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

Возвращает объект8регион

Описание:

Функция ConvexHull() возвращает регион, представляющий контур, охватывающий точки входного объекта. Функция ConvexHull() создает один контур за раз. Чтобы создать контуры вокруг нескольких объектов, используйте оператор Create Object As ConvexHull.

Пример:

Следующий пример выбирает штат New York из таблицы штатов, затем создает полигон контур вокруг выборки.

Dim Resulting_object as object select * from States

where State_Name = »New York» Resulting_object = ConvexHull(selection.obj)

Insert Into States(obj) Values (Resulting_object)

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

Create Object

Справочник MapBasic

105

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

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

Назначение:

Задает систему координат.

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

CoordSys Earth

[ Projection type, datum, unitname

[, origin_longitude ] [, origin_latitude ]

[, standard_parallel_1 [, standard_parallel_2 ] ] [, azimuth ]

[, scale_factor ] [, false_easting ] [, false_northing ] [, range ] ]

[ Affine Units unitname, A, B C, D, E, F ] [ Bounds ( minx,miny) ( maxx,maxy) ]

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

CoordSys Nonearth

[ Affine Units unitname, A, B C, D, E, F ] Units unitname

Bounds (minx, miny) ( maxx, maxy)

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

CoordSys Layout Units paperunitname

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

CoordSys Table tablename

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

CoordSys Window window_id

где

type – положительное целое число, представляющее тип координатной системы; datum – положительное целое число, определяющее референс-эллипсоид;

unitname – единица измерения расстояний, строковая величина (например, "m" – метры, список единиц приведен в описании оператора Set Distance Units);

origin_longitude – долгота точки отсчета (нулевой точки) в градусах, вещественное число (тип Float); origin_latitude – широта точки отсчета (нулевой точки) в градусах, вещественное число (тип Float); standard_parallel_1 и standard_parallel_2 – широта в градусах, вещественное число (тип Float); azimuth – азимутальный угол в градусах, вещественное число (тип Float);

scale_factor – коэффициент искажения (масштабный коэффициент), вещественное число (тип Float);

range – вещественное число от 1 до 180 (тип Float), определяющее, какая часть Земли видна; minx – минимальная X-координата, вещественное число (тип Float);

miny – минимальная Y-координата, вещественное число (тип Float);

106

Справочник MapBasic

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

maxx – максимальная X-координата, вещественное число (тип Float); maxy – максимальная Y-координата, вещественное число (тип Float);

paperunitname – строковая величина, представляющая имя "бумажной" единицы (например, "in" – дюймы, список единиц приведен в описании оператора Set Paper Units);

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

window_id – целочисленный идентификатор окна Карты или Отчета.

A задает масштабирование или растяженеи вдоль оси X.

B задает поворот или сдвиг вдоль оси X.

C задает смещение вдоль оси X.

D задает масштабирование или растяженеи вдоль оси Y.

E задает поворот или сдвиг вдоль оси Y.

F задает смещение вдоль оси Y.

Описание:

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

Первый вариант синтаксиса предложения используется для Карт мира. Параметры предложения Projection задают проекцию Карты (если она есть), и должны использоваться в соответствии с координатной системой. Если это предложение опущено, то MapBasic использует координатную систему широта/долгота, представляющую Северную Америку 1927 года (NAD-27).

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

Третий вариант синтаксиса предложения (CoordSys Layout) используется для задания координатной системы в окне Отчета. Программа MapBasic должна выполнить оператор Set Coord Sys Layout перед тем, как создавать объекты Отчета и работать с ними. Параметр unitname задает имя "бумажной" единицы, которая будет использоваться в окне. Например, следующий оператор Set CoordSys определяет дюймы, как единицы измерений в окне Отчета:

Set CoordSys Layout Units "in"

Четвертый вариант синтаксиса предложения (CoordSys Table) используется для задания координатной системы в таблице, данные которой сохраняются на диске.

Пятый вариант синтаксиса предложения (CoordSys Window) позволяет установить такую же координатную систему, как в окне window_id.

В операторах Set Map и Set Digitizer, использующих предложение CoordSys, MapBasic игнорирует предложение Bounds. Это предложение используется для планов (непроецированных Карт), когда предложение CoordSys входит в состав других операторов.

Предложение Bounds задает границы, в которых показывается Карта. Объект не может быть создан за пределами заданных этим предложением границ. Если задается координатная система Карты мира (Earth), то Вы должны опустить предложение Bounds, так как MapInfo пытается по умолчанию охватить всю Землю.

Справочник MapBasic

107

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

Замечание: В операторе Create Map можно увеличить точность координат на Карте, задав более узкий охват предложением Bounds.

Каждая картографическая проекция задается уравнением, имеющим свой индивидуальный набор параметров. Поэтому предложение CoordSys может иметь разный набор параметров в предложении Projection. Например, уравнение, задающее проекции Робинсона, использует в качестве параметров референс-эллипсоид (Datum), единицы измерения (Units) и начальную широту (Origin Latitude), а уравнение для модифицированной проекции Меркатора – референс-эллипсоид (Datum), единицы измерения (Units), начальную широту (Origin Latitude), начальную долготу (Origin Latitude), коэффициент искажения (Scale Factor), восточное смещение (False Easting) и северное смещение (False Northing).

Для дальнейшей информации о проекциях и координатных системах смотрите документацию MapInfo.

В каждом приложении MapBasic действует своя координатная система. При выполнении одним приложением оператора Set CoordSys, для другого приложения эти установки не имеют значения. Установка координатной системы действительна только для того приложения, в котором она была определена.

Пример1:

Оператор Set Map задает режим представления существующей Карты. Представленный в примере оператор Set Map задает режим показа Карты в проекции Робинсона:

Set Map CoordSys Earth Projection 12, 12, "m", 0.

Первое число 12 определяет проекцию Робинсона; второе число 12 определяет применение этой проекции ко всему Земному шару; параметр "m" задает метры, как единицы измерения; ноль задает нулевую долготу как начальную.

Пример 2:

Следующий оператор задает показ карты без проекций:

Set Map CoordSys Earth

Пример 3:

В следующем примере открывается таблица WORLD, и с помощью оператора Commit сохраняется под именем RWORLD в проекции Робинсона.

Open Table "world.tab" As World

Commit Table World As "RWORLD.TAB"

CoordSys Earth Projection 12, 12, "m", 0.

Пример 4:

Следующий оператор копирует проекцию из окна Карты, имеющего идентификатор "first_map_id", в окно с идентификатором "second_map_id".

Set Map

Window second_map_winid

CoordSys Window first_map_winid

Пример 5:

Следующий пример определяет систему координат DCS, которая получена из системы

108

Справочник MapBasic

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

координат UTM Zone 10, путем аффинного преобразования x1 = 1.57x – 0.21y + 84120.5

y1 = 0.19x + 2.81y – 20318.0

Здесь координаты (x1 , y1) представляют полученные координаты для DCS, а (x, y) исходные координаты UTM Zone 10. Если координаты DCS исчисллись в футах, то предложение CoordSys для DCS выглядело бы следующим образом:

CoordSys Earth

Projection 8, 74, »m», 123, 0, 0.9996, 500000, 0

Affine Units »ft», 1.57, 0.21, 84120.5, 0.19, 2.81, 20318.0

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

Commit Table, Set CoordSys, Set Map

Справочник MapBasic

109

Функция Cos( )

Функция Cos( )

Назначение:

Вычисляет косинус.

Синтаксис:

Cos(num_expr)

где

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

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

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

Описание:

Функция Cos(_) вычисляет косинус числа, полученного в результате вычисления выражения num_expr. Угол должен задаваться в радианах. Диапазон возвращаемого значения находится между единицей и минус единицей включительно.

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

Пример:

Include "MAPBASIC.DEF"

Dim x, y As Float

x = 60 * DEG_2_RAD y = Cos(x)

'y равен 0.5, поскольку

'косинус от 60 градусов равен 0.5

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

Acos(_), Asin(_), Atn(_), Sin(_), Tan(_)

110

Справочник MapBasic

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