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

Материал из K3-Macro
Макро | Переменные и выражения | Вызов из ZIP | Типовые параметры | Создание геом. объектов | Буфер обмена | Сценарии | Параметрические библиотеки | Геометрические характеристики | Атрибуты | Структурные объекты | Текстовые файлы | Системные параметры | Работа с файлами | Редактирование объектов | Удаление объектов | Размеры | Штриховка | Объект «Текст» | Камера | Работа с видом | Наборы параметров | Запрос информации у пользователя | Фильтры | Слои | Графы | Универсальные плоские объекты | Функции работы с системой | Функции работы с объектами сцены | Работа с динамически подключаемыми библиотеками | Функции работы с массивами | Работа со строками | Математические функции | Работа с файлами DBF dBASE IV | Унифицированная работа с базами данных | Вычисление выражений | Присвоение имени объекту | Откатка и восстановление команд | Изменение режима трассировки макропрограмм | Вызов внешних приложений и задач | Проверка условия | Проверка типа переменной | Установкв статуса вывода сообщений | Выдача системного сообщения | Выбор объектов | Версия системы | Информация о системе | Проверка принадлежности к списку | Помещение строки в буфер команд | Получение метапути | Установка курсора ожидания | Мебельные команды и функции для макропрограммирования‎

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

Создание текста[править | править код]

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

Команда 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) фиксированный шаг текста.

Функции работы с текстом[править | править код]

GetTextInfo[править | править код]

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 (минус единицу) в случае ошибки.

PutTextInfo[править | править код]

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 (минус единицу) в случае ошибки

GetRectText[править | править код]

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> с описанием шрифтов.


Макро | Переменные и выражения | Вызов из ZIP | Типовые параметры | Создание геом. объектов | Буфер обмена | Сценарии | Параметрические библиотеки | Геометрические характеристики | Атрибуты | Структурные объекты | Текстовые файлы | Системные параметры | Работа с файлами | Редактирование объектов | Удаление объектов | Размеры | Штриховка | Объект «Текст» | Камера | Работа с видом | Наборы параметров | Запрос информации у пользователя | Фильтры | Слои | Графы | Универсальные плоские объекты | Функции работы с системой | Функции работы с объектами сцены | Работа с динамически подключаемыми библиотеками | Функции работы с массивами | Работа со строками | Математические функции | Работа с файлами DBF dBASE IV | Унифицированная работа с базами данных | Вычисление выражений | Присвоение имени объекту | Откатка и восстановление команд | Изменение режима трассировки макропрограмм | Вызов внешних приложений и задач | Проверка условия | Проверка типа переменной | Установкв статуса вывода сообщений | Выдача системного сообщения | Выбор объектов | Версия системы | Информация о системе | Проверка принадлежности к списку | Помещение строки в буфер команд | Получение метапути | Установка курсора ожидания | Мебельные команды и функции для макропрограммирования‎