Работа с объектом «Текст»

Материал из GEOS_WIKI
Перейти к: навигация, поиск

К числу команд работы с текстом можно отнести команды создания текста, редактирования текста и пр. Эти команды представлены данном разделе

Создание текста

Номера привязок текста

Команда text имеет несколько вариантов, представленных ниже.

text <Str1>, <Str2>, …, <StrN> done [vcs] [snap <1>…<9>] [align] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда создаёт объект типа «Текст», состоящий из строк <Str1>, <Str2>, …, <StrN> и размещает его в точке <Point1> по направлению к точке <Point2>.

Ключ vcs позволяет задать плоскость написания текста в экранной плоскости (видовой системе координат). Этот ключ нужен для размещения текста в интерактиве.

Ключ normal <PointN> задаёт нормаль к плоскости, в которой будет расположен текст. При его отсутствии текст располагается в плоскости текущего вида. Ключ snap <1>…<9> позволяет указать точку привязки текста согласно рисунку. По умолчанию остановлена привязка №1 – левый нижний угол текста.


Текст без выравнивния (сверху) и с выравниванием (снизу)

Ключ align позволяет выровнять текст по базовой линии. Без этого ключа базовая линия определяется по минимальному габариту текста. При использовании этого ключа базовая линия определяется по введенной строке. Это необходимо при наличии в строке текста «высоких» символов («q», «j», «Щ» и пр.).











Стиль текста

Ключ style <Style> позволяет определить стиль написания текста. Стиль определяется либо через диалоговое окно, либо последовательным заданием следующих параметров:

  • Высота текста
  • Отношение ширины к высоте (в процентах)
  • Угол наклона шрифта в градусах
  • Разрядка между символами (в процентах)
  • Разрядка между строками (в процентах)
  • Вертикальное расположение текста (да/нет)
  • Фиксированный шаг текста (да/нет)

Пример:

text “Строчка1”, “Строчка2”, “Строчка3” done 100,0,0 10,0,0


Ввод строки текста

text string [vcs] [snap <1>…<9>] [align] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда позволяет вводить одну строку текста в диалоговом окне, изображённом на рисунке.






Ввод нескольких строк текста

text tedit [vcs] [snap <1>…<9>] [align] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда позволяет ввести несколько строк текста в простейшем текстовом редакторе.


text file <Filename> [vcs] [snap <1>…<9>] [align] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда позволяет создать объект типа «Текст» из текстового файла с кодировкой символов в формате ANSI с именем <Filename>.


text oem <Filename> [vcs] [snap <1>…<9>] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда позволяет создать объект типа «Текст» из текстового файла с кодировкой символов в формате OEM с именем <Filename>.


Атрибуты объекта

text attribute <Object> <Attr1>, <Attr2>, …, <AttrN> done [vcs] [snap <1>…<9>] [style <Style>] <Point1> [normal <PointN>] <Point2>

text attribute <Object> list [vcs] [snap <1>…<9>] [align] [style <Style>] <Point1> [normal <PointN>] <Point2>

Команда создаёт текст из атрибутов с именами <Attr1>, <Attr2>, …, <AttrN> объекта <Object>. Второй вариант синтаксиса команды (указан ключ list) позволяет выбрать атрибуты при помощи диалогового окна.


text edit {text|style} <Object> [<Text>|<Style>]

Команда позволяет редактировать введённый текст <Object>. Ключ text позволяет редактировать содержимое текста <Text>. Ключ style позволяет редактировать стиль написания текста <Style>. Ключи text и style запоминаются системой, и, если не указаны явно, используется последний выбранный ключ. Пример:

// Редактирование содержимого текста
text edit text Obj "Новый текст";
// Редактирование стиля текста
text edit style Obj 100,0,0,10,0 no no;







Установка стиля текста

style

Команда style устанавливает стиль для вновь создаваемых объектов типа «Текст». Поскольку задание стиля текста осуществляется в диалоговом окне, использовать эту команду в макропрограммах неудобно.


theight <K>

Команда theight устанавливает высоту текста равной <K>.


tscale <K>

Команда tscale устанавливает отношение ширины символа к высоте (в процентах) равным <K>.


tangle <K>

Команда tangle устанавливает угол наклона символов шрифта (в градусах) равным <K>.


tdchar <K>

Команда tdchar устанавливает разрядку между символами (в процентах) равную <K>.


tdstring <K>

Команда tdstring устанавливает разрядку между строками (в процентах) равную <K>.


tvertical yes|no

Команда tvertical устанавливает вертикальное (yes), либо горизонтальное (no) расположение текста.


tfixed yes|no

Команда tfixed устанавливает (yes) или снимает (no) фиксированный шаг текста.

Функции работы с текстом

INT GetTextInfo(OBJECT <Obj>, varname ARRAY <Info[8]>)

Функция заполняет массив <Info> информацией об объекте <Obj> типа «Текст» (см таблицу).

Информация о текстовом объекте
№ элемента
Информация
Тип значения
1

Имя шрифта

String
2

Высота символа

double
3

Отношение ширины к высоте (в процентах)

double
4

Угол наклона шрифта (в градусах)

double
5

Разрядка между символами по горизонтали (в процентах)

double
6

Разрядка между символами по вертикали (в процентах)

double
7

Количество строк в объекте типа «Текст»

int
8

Содержимое первой строки текста

String

Функция возвращает количество заполненных элементов массива или -1 (минус единицу) в случае ошибки.


INT PutTextInfo(OBJECT <Obj>, variant ARRAY <Info[6]>)

Функция изменяет стиль текста в объекте <Obj> типа «Текст» в соответствии с содержимым массива <Info>:

Информация для текстового объекта
№ элемента
Информация
Тип значения
1

Имя шрифта

String
2

Высота символа

double
3

Отношение ширины к высоте (в процентах)

double
4

Угол наклона шрифта (в градусах)

double
5

Разрядка между символами по горизонтали (в процентах)

double
6

Разрядка между символами по вертикали (в процентах)

double

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

-1 — Задан объект не текст

-2 — Чужой файл со шрифтом

-3 — Файл со шрифтом не читается

-4 — Мало памяти при загрузке файла со шрифтом

-5 — Пустой шрифт

-6 — Слишком большой шрифт

-7 — Файла со шрифтом не существует

-8 - Мало виртуальной памяти при загрузке файла со шрифтом


INT GetTextLine(OBJECT <Obj>, string ARRAY <Info>)

Функция заполняет массив <Info> построчно текстом, содержащемся в объекте <Obj> типа «Текст». Функция возвращает количество заполненных элементов массива или -1 (минус единицу) в случае ошибки


INT GetRectText(VARIANT <Text>, VARNAME <Leght>, VARImane <Height>[, INT <iBeg>[, INT <Num>]])

Функция вычисляет размеры (длину и высоту в мм) прямоугольника текста (в ЛСК текста) с учетом текущего и общего графических коэффициентов и заносит их в переменные <Leght> и <Height> соответственно. Функция возвращает количество строк проанализированного текста.

Входные параметры:

<Text> — строка или массив строк:

<iBeg> — индекс первого элемента (нумерация начинается с единицы) в массиве строк <Text>. Если параметр <iBeg> не задан, то анализируются все элементы массива <Text>.

<Num> — количество анализируемых элементов в массиве строк, начиная с <iBeg>. Если <Num> не задан, то анализируются все строки массива <Text>, начиная с <iBeg>.

Пример:

tex="К3 - лучшая программма";
len=0;
hei=0;
=getrecttext(tex,len,hei);
1
=len;
101.667
=hei;
6.667


INT GetRectText(OBJECT <Obj>, double ARRAY <Arr>)

Функция вычисляет координаты в ГСК 3-х вершин прямоугольника текста в объекте типа "выноска с примечанием" с учетом текущего и общего граф.коэффициентов и заполняет ими массив <Arr>. Функция возвращает количество заполненных элементов массива.

Входные параметры:

<Obj> — объект типа "выноска с примечанием"

<Arr> — массив размерностью не менее 9-ти элементов.

Элементы массива:

<Arr>[1..3] — координата в ГСК левого нижнего угла прямоугольника текста выноски

<Arr>[4..6] — координата в ГСК правого нижнего угла прямоугольника текста выноски

<Arr>[7..9] — координата в ГСК левого верхнего угла прямоугольника текста выноски

Изменение ориентации текста

OrientByView <Objects>

Команда OrientByView ориентирует объекты <Objects> (это моежт быть либо текст, либо полочка-выноска) таким образом, чтобы они были расположены в экранной плоскости (в видовой системе координат текущего вида)

Работа со шрифтом

font <FileName>

Команда font загружает с диска файл с именем <FileName> с описанием шрифтов.