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

Функция CreateCircle( )

Функция CreateCircle( )

Назначение:

Возвращает объект "окружность".

Синтаксис:

CreateCircle(x, y, radius)

где

x – XLкоордината центра окружности (или широта), действительное число; y – YLкоордината центра окружности (или долгота), действительное число; radius – действительное число, назначающее радиус окружности.

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

Величина типа Object.

Описание:

Функция CreateCircle(_) возвращает графический объект типа "окружность".

Параметры x и y задают координаты центра окружности в той координатной системе, которая была объявлена MapBasic ранее. (Смотрите описание оператора Set CoordSys.) Если система не объявлялась, то координаты будут принимать значения широты и долготы. При этом надо учесть, что MapBasic игнорирует координатную систему самого окна Карты.

Параметр radius назначается в тех единицах измерения, которые были назначены MapBasic до выполнения этой функции. (Смотрите описание оператора Set Distance Units.) Если единицы не были объявлены, то радиус будет измеряться в милях.

Линия и заливка создаваемой окружности будут создаваться в соответствии с выбором стилей линии и штриховки в операторе Set Style, который выполняется до функции CreateCircle(_). Вы можете также воспользоваться для создания объекта типа "окружность" оператором Create Ellipse, в котором могут быть предложения Pen и Brush, для определения стилей линии и штриховки.

Графический объект, созданный функцией CreateCircle(_), может быть присвоен объектной переменной, которая задает значение для уже существующей строки таблицы (оператор Update) или вновь созданной (оператор Insert).

Замечание: Перед созданием объекта в окне Отчета не забудьте выполнить оператор Set CoordSys Layout.

Ошибки:

Функция вернет код ошибки ERR_FCN_ARG_RANGE, если значение аргумента выходит за пределы, заданные при его определении.

Пример 1:

В примере используется оператор Insert для создания новой строки в таблице SITIES. Функция CreateCircle(_) используется в теле оператора Insert для создания объекта "окружность", данные которого будут помещены в этой строке.

Open Table "sities.tab"

Insert Into sities (obj)

Values ( CreateCircle( 72.5, 42.4, 20) )

Справочник MapBasic

117

Функция CreateCircle( )

Пример 2:

В следующем примере используется таблица TOWERS, которая имеет три колонки: "Xcoord", "YcoL ord" и "Radius". Колонки "Xcoord" и "Ycoord" содержат значения долготы и широты, где находятся радиостанции, а колонка "Radius" – значения радиусов областей их вещания.

Оператор Update использует функцию CreateCircle(_) для построения окружностей для каждой строки таблицы. После выполнения оператора каждой строке таблицы TOWERS будет присоединен соответствующий объект.

Open Table "towers"

Update towers

Set obj = CreateCircle(xcoord, ycoord, radius)

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

Create Ellipse, Insert, Update

118

Справочник MapBasic

Оператор Create Ellipse

Оператор Create Ellipse

Назначение:

Создает эллипсы и окружности.

Синтаксис:

Create Ellipse

[ Into { Window window_id | Variable var_name } ] (x1, y1) (x2, y2)

[ Pen... ]

[ Brush... ]

где

window_id – идентификатор окна, целое число; var_name – имя объектной переменной;

x1, y1 – координаты одного угла прямоугольника, описывающего эллипс;

x2, y2 – координаты противоположного по диагонали угла прямоугольника, описывающего эллипс; Pen – слово, с которого начинается стандартное предложение для назначения стиля линии объекта; Brush – слово, с которого начинается стандартное предложение для назначения стиля штриховки объекта.

Описание:

Результатом действия оператора Create Ellipse является новый объект типа "эллипс". MapBasic создает объект, вписывая его в прямоугольник, задаваемый координатами двух противоположных углов. Такой прямоугольник называется минимальным прямоугольным покрытием объекта (МПП). Если оператор задает квадрат, то будет создана окружность, иначе – эллипс.

Если оператор включает конструкцию Into Variable, то созданный объект будет значением объектной переменной var_name. Если одним из параметров предложения Into указывается окно, объект помещается на подготовленное место в окне (например, на изменяемый слой). Если предложения Into вообще нет в операторе, MapBasic попробует создать эллипс в самом верхнем окне. Если это невозможно (например, поверх всех окон лежит окно Графика), то объект не будет создан.

Параметры x и y являются координатами в той системе координат, которая была объявлена до оператора Create Ellipse. (Смотрите описание оператора Set CoordSys.) Если система не объявлялась, то координаты будут принимать значения широты и долготы. При этом надо учесть, что MapBasic игнорирует координатную систему самого окна Карты. Если объект создается для окна Отчета, параметры x и y – координаты точки на листе в объявленных ранее единицах измерения листа. (Смотрите описание оператора Set Paper Units.) Так, XLкоордината – это расстояние от левого края листа до точки и YLкоордината – расстояние от верхнего края листа.

Предложения Pen и Brush назначают стиль линии и штриховки объекта. Если в операторе не участвует предложение Pen, оператор Create Rect использует установку соответствующего режима для стиля линии в MapInfo. Стиль линии можно изменить командой НАСТРОЙКА > СТИЛЬ ЛИНИЙ. (Аналогично тому, что предложению Brush в MapInfo соответствует команда НАСТРОЙКА > СТИЛЬ ОБЛАСТЕЙ.)

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

Brush, CreateCircle( ), Insert, Pen, Update

Справочник MapBasic

119

Оператор Create Frame

Оператор Create Frame

Назначение:

Создает новый объект "рамка" в окне Отчета.

Синтаксис:

Create Frame

[ Into { Window layout_win_id | Variable var_name } ] (x1, y1) (x2, y2)

[ Pen ... ]

[ Brush ... ] [ Title title ]

[ From Window contents_win_id ] [ FillFrame { On | Off } ]

где

x1, y1 – координаты одного угла рамки; x2, y2 – координаты другого угла рамки;

layout_win_id – идентификатор окна Отчета, целое число; var_name – имя объектной переменной;

title – строка, задающая заголовок окна, изображение из которого будет помещено в рамку (не имеет смысла использовать, если в операторе используется предложение From Window);

contents_win_id – идентификатор окна, изображение из которого будет помещено в рамку, целое число.

Слово Pen начинает стандартное предложение для назначения стиля линии объекта;

Слово Brush начинает стандартное предложение для назначения стиля штриховки объекта.

Описание:

Результатом действия оператора Create Frame является новый объект типа "рамка" в окне Отчета.

Замечание: Перед созданием объекта в окне Отчета не забудьте выполнить оператор Set CoordSys Layout.

MapInfo запомнит установки в окне Отчета, если поместить оператор Create Frame в файл Рабочего Набора. Файл Рабочего Набора является текстовым, и его можно открыть и отредактировать в окне MapBasic.

Предложение Pen диктует стиль линии контура рамки, а предложение Brush задает стиль раскраски фона рамки.

Если оператор использует предложение Into Variable, то созданный объект будет значением объектной переменной. Если предложением Into Window layout_win_id указывается окно Отчета, объект помещается в это окно. Если предложения Into вообще нет в операторе, MapBasic попробует создать рамку в самом верхнем окне; если это невозможно (например, окно Отчета не лежит поверх всех окон), то объект не будет создан. Перед созданием объекта в окне Отчета необходимо выполнить оператор Set CoordSys Layout.

Предложение From Window используется для задания окна, изображение из которого будет показано в рамке. Для этого необходимо знать идентификатор окна. Окно должно быть уже открыто в MapInfo.

Предложение Title является альтернативой предложению From Window и тоже задает окно,

120

Справочник MapBasic

Оператор Create Frame

изображение из которого будет показано в рамке. Для задания используется заголовок окна. Например, для окна Карты в котором показаны данные таблицы WORLD, предложение будет такое – Title "WORLD Map". Если нет окна для рамки, то параметр title должен быть равен пустой строке (""). Оператор создаст пустой объект.

Если Вы включили в оператор сразу два предложения Title и From Window, то только последнее из них подействует.

При создании рамки для окна Карты, можно применять предложение FillFrame, чтобы управлять заполнением рамки Картой: задание FillFrame On помещает всю Карту в рамку, FillFrame Off (или отсутствие предложения FillFrame) задает режим, в котором помещение рамки в окно зависит от соотношения высоты и ширины окна и рамка может не показывать Карту полностью. Эти режимы управляются флажком в диалоге “Рамка”.

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

Brush, Insert, Layout, Pen, Set CoordSys, Set Layout, Update

Справочник MapBasic

121

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