
Lib_st
Вывод стилизованого многострочного текста

---

Библиотека содержит две функции, но для использования в MidletPascal нужна только одна.


font(str: string, x: integer, y: integer, w: integer, h: integer);
 - вывод стилизированого текста
   str - специально отформатированная строка (об этом ниже)
   x - позиция x для вывода текста
   y - позиция y для вывода текста
   w - ширина поля для вывода текста
   h - высота поля для вывода текста

Теперь о том, что за строку нужно передавать функции. Если мы просто передадим какую попало строку, то мидлет зависнет. Передавать нужно строку, разделённую на блоки. Блоков может быть сколько угодно. Каждый блок должен начинаться со спецсимвола. Спецсимвол может быть любой (функция берёт самый первый). Нужно указывать такой символ, который вы не собираетесь использовать в выводимой строке. Концом блока является начало другого блока (этот же самый символ) или конец строки. Вот я сейчас впариваю вам про какие-то блоки, а вы не понимаете, нафига это нужно. Сейчас поясню. После символа начала блока идёт ещё 8 специальных символов. Каждый из них описывает определённое свойство данного блока.

Первый символ - указывает на стиль шрифта. Он может иметь следующие значения:
p - обычый текст
b - жирный
i - курсив

Второй символ - указывает на размер шрифта. Может принимать значения:
m - обычный шрифт
s - маленький шрифт
l - большой шрифт

Последние 6 символов - это цвет (rrggbb) в шестнадцатиричном представлении.

Ну а после всего этого идёт собственно сам текст =)


Наглядный пример:

str=">bsff0000Пример номер один";
     ||||     |
     ||||     |_ это текст
     ||||
     ||||_ это цвет (ff0000=красный)
     |||
     |||_ s = маленький шрифт
     ||
     ||_ b = жирный шрифт
     |
     |_ в роли спец символа используется >
     
В данном случае на экран выведется текст "Пример номер один" маленьким жирным шрифтом красного цвета.

Надеюсь, пример понятен. Теперь посложнее =)

str=">bsff0000Пример >bs00ff00номер >bs0000ffдва";

В этом примере выведется надпись "Пример номер два", также маленьким жирным шрифтом, но цвет каждого слова будет разный.

---

by Phantom
