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

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

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

Назначение:

Задает стиль линии для графических объектов.

Синтаксис:

Pen pen_expr

где

pen_expr – выражение, результат которого есть величина типа Pen (или переменная типа Pen, или вызов функции, возвращающей такую величину, например, MakePen (width, pattern, color)).

Описание:

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

Это предложение используется, например, в операторе Create Line, который создает новый объект типа "линия". Предложение Pen задает стиль для нового объекта. Если оператор не использует это предложение, то будет использована текущая настройка этого стиля в MapInfo.

Параметр pen_expr должен быть величиной типа Pen и может задаваться переменной или выражением соответствующего типа:

Pen pen_var

или может задаваться вызовом функций CurrentPen( ) или MakePen( ), которые возвращают величины типа Pen:

Pen MakePen(1, 2, BLUE)

В некоторых операторах (например, Set Map) после слова Pen стиль задается непосредственно набором из трех целочисленных параметров (width, pattern и color), например:

Pen(1, 2, BLUE)

Заметим, что некоторые операторы MapBasic используют выражения тип Pen как параметры без ключевого слова. Одним из примеров является оператор Alter Object.

В следующей таблице приводится описание параметров стиля линии:

Компонента стиля

Описание

width

Толщина линии в точках, величина типа Integer, от 1 до 7

 

включительно. Если Вы хотите иметь невидимую линию в объекте,

 

то задайте нулевую толщину. При этом, если параметр будет равен

 

0, то параметр типа линии pattern должен быть равен 1 (единице).

pattern

Тип линии, величина типа Integer, от 1 до 77 (смотрите таблицу

 

ниже). Значение 1 обозначает невидимую линию.

color

Цвет линии в системе RGB, величина типа Integer. Смотрите

 

описание функции RGB( ).

374

Справочник MapBasic

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

В следующей таблице показаны образцы линий и их номера:

Пример:

Include "MAPBASIC.DEF"

Dim cable As Object

Create Line

Into Variable cable

(73.5, 42.6) (73.67, 42.9) Pen MakePen(1, 2, BLACK)

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

Alter Object, Create Line, Create Pline, CurrentPen( ), MakePen( ), RGB( ), Set Style

Справочник MapBasic

375

Функция PenPattern()

Функция PenPattern()

Назначение:

Возвращает номер стиля линии.

Синтаксис:

PenPattern ( pattern, isinterleaved )

pattern L это целое значение, соответствующее номеру стиля линии.

isinterleaved L это булевская величина, истинная, если линии перекрещивающиеся, и ложная, если линии накладывающиеся.

Описание:

Функция PenPattern возвращает стиль линии для заданного номера стиля с и ли без установок для пересекающихся линий. Эта функция возвращает переменную типа целое, соответствующую определенному стандартному типу перекрещивающихся или наложенных линий. Используйте эту функцию для получения информации о стиле линии из перечня имеющихся стилей перекрещивающихся или наложенных стилей линий.

Пример:

Include “MAPBASIC.DEF”

Dim Cable As Object

Create Line

Into Variable Cable (73.5, 42.6) (73.67, 42.9)

Pen MakePen (3, PenPattern (65, True), Red)

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

CurrentPen(), MakePen(),Pen, StyleAttr()

376

Справочник MapBasic

Функция PenWidthToPoints()

Функция PenWidthToPoints()

Назначение:

Функция PenWidthToPoints возвращает размер в пунктах для линии данной ширины.

Синтаксис:

PenWidthToPoints ( penwidth )

penwidth это целое значение, большее чем 10, представляющее ширину линии.

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

Вещественное.

Описание:

Функция PenWidthToPoints берет ширину линии и возвращает ее значение в пунктах. Ширина линии для стиля линии может быть возвращена с помощью функции StyleAttr. Ширина линии, возвращаемая функция StyleAttr может быть в пунктах или пикселах. Ширина шинии, меньшая чем 10 задается в пикселах. Любая ширина от 10 и более задается в пунктах. PenWidthToPoints будет возвращать значения только для линий с шириной, заданной в пунктах. Чтобы определить, в каких величинах задана ширина линии, в пунктах или пикселах, используйте функцию IsPenWidthPixels.

Пример:

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(), IsPenWidthPixels(), MakePen(),Pen, PointsToPenWidth(), StyleAttr()

Справочник MapBasic

377

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