Показать сообщение отдельно
Старый 13.07.2008, 03:20   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Счастье Ответ: Lib_font32: Графические шрифты

Добавил функции модификации шрифта, вывода длинного текста в окно и скролинга.
Теперь можно поспорить какая либа круче 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 если перерисовка не нужна 
Думаю прикрутить ещё и выравнивание текста влево и по центру. Ну, это уже элементарно. Скоро будет.

Последний раз редактировалось Piligrim, 02.10.2009 в 22:35.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
Rock2roll (31.07.2010), Romanzes (13.07.2008), Strelok (13.07.2008)