Добавил функции модификации шрифта, вывода длинного текста в окно и скролинга.
Теперь можно поспорить какая либа круче
Lib_text aka
MultiLine или моя.
Новый список функций:
Init(k: integer) - Начальная инициализация библиотеки.
k - количество шрифтов, которое мы собираемся использовать
Font(i: integer) - Выбрать текущий шрифт.
i - номер шрифта, может быть от 0 до k-1 (см. init)
LoadFont(fname: string) - Загрузить шрифт. Номер шрифта должен был быть задан заранее процедурой Font().
fname - название шрифта
DrawString(s: string; x: integer; y: integer) - Вывод одной строки текста на экран (без переносов)
s - текст выводимой строки
x, y - координаты, куда нужно выводить строку
TextWindow(x: integer; y: integer; w: integer; h: integer) - Задать окно, в которое будет выводиться строка
x, y - координаты верхнего левого угла окна
w, h - ширина и высота окна
integer TextHeight - Возвращает высоту текущего шрифта в пикселах
integer TextWidth(s: string) - Возвращает длину текста s в пикселах.
Это нужно, например, для того, чтобы прикинуть влезет ли данная строка на экран.
Modify(im: image) - Модифицировать текущий шрифт. Применяется для изменения цвета/прозрачности
шрифта, например с помощью библиотеки Lib_alpha.
integer Format(s: string) - Разбить длинный текст на мелкие строчки так, чтобы он помещался в
окно, заданное процедурой TextWindow. Функция возвращает расчётну высоту полученного разбитого текста
в пикселах.
DrawTextWindow - Нарисовать ранее разбитый функцией Format текст в окне
Окно должно было быть заданно функцией TextWindow до форматирования.
integer MoveUp(px: integer) - Перемотать текст в окне на px пикселов вверх
Функция возвращает 1 если нужна перерисовка экрана (т.е. текст был сдвинут) или 0 если перерисовка не нужна
integer MoveDown(px: integer) - Перемотать текст в окне на px пикселов вниз
Функция возвращает 1 если нужна перерисовка экрана (т.е. текст был сдвинут) или 0 если перерисовка не нужна
Думаю прикрутить ещё и выравнивание текста влево и по центру. Ну, это уже элементарно. Скоро будет.