Четверг, 15.11.2018, 09:57
Приветствую Вас Посетитель

Форма входа
Меню сайта
Категории раздела
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Файлы » Библиотеки » Графика

Font32
16.08.2011, 17:25
Стандартный шрифт имеет множество недостатков:
- На многих телефонах огромный
- На каждом телефоне свой шрифт, разного размера и толщины.
- Переносить текст нужно самостоятельно

Чтобы не создавать себе проблемы, используйте библиотеку Lib_font32. Она состоит из 3 файлов: сама библиотека, графический шрифт (обычная .*png картинка), и *.dat файл, в котором описаны ширина каждого символа. Lib_font32 следует скидывать в папку Libs (она находится там же, где установлен MidletPascal). Графический шрифт и *.dat файл загружаем в проект.

Теперь как работать с Lib_font32.

Как обычно, активируем её. для этого пишем "font32.init(x);" вместо x - число шрифтов, которые мы собираемся использовать. В данном случае 1.

Теперь нужно загрузить в память графический шрифт. Пишем "Font(x);". Вместо x - номер шрифта (начиная с нуля!). Так как шрифт у нас пока только 1, вместо x пишем 0.

Теперь нужно указать название шрифта. Пишем "LoadFont('name');". Вместо name - имя шрифта. Без расширения ".png" (в данном случае имя будет такое - "Verdana_11"

Так, все настроено, теперь пора бы что-нибудь написать:
Сначала надо задать окно, в пределах которого и будет написан текст. Задается оно так: "TextWindow (x,y,w,h);", где
x,y - координаты левого-верхнего угла окна.
w - ширина окна
h - высота окна

Теперь нужно разбить текст на строчки, чтобы он вместился в заданное окно. Пишем функцию "Format(s,x)". Она вернет нам высоту полученного текста "s". x означает способ вывода текста:
0 - оставить только новый текст
1 - добавить к существующему тексту новый.

Теперь нужно вывести на экран всё то, что мы готовили. Для этого пишем "DrawTextWindow;"
ВАЖНО: "TextWindow" и "Format" можно вызывать 1 раз, после чего юзать только "DrawTextWindow;". Если, конечно, Вы не решили изменить текст или параметры вывода (сменить размер окна, например).

Итак, выводить текст на экран мы научились, теперь будем его форматировать. Вот список возможного форматирования:
Spacing (x) -межбуквенное расстояние (в пикселях)
Leading (x) -межстрочное расстояние (в пикселях)
Align - выравнивание
0 - по левому краю
1 - по центру краю
2 - по по правому краю

Если текст большой и не влазит, существует прокрутка:
MoveUp(x) - прокрутка вверх в пикселях. Возвращает: 
1 - если текст был сдвинут
0 - если не был сдвинут (в случае, если текст прокручен максимально вверх или прокрутки нет вообще)
MoveDown(x) - прокрутка вниз в пикселях. Возвращает: 
1 - если текст был сдвинут
0 - если не был сдвинут (в случае, если текст прокручен максимально вниз или прокрутки нет вообще)


ВАЖНО: Есть небольшой баг (или так задумано?) - если вывести большой текст с прокруткой, а затем вывести маленький текст, то прокрутка так и останется. То есть прокрутка будет больше, чем высота области, занимаемой всем текстом. Из-за этого текст "исчезнет". Лечится так: MoveUp(9999) так не лечиться, ибо если величина задаваемого скролла больше возможного, ничего не происходит. Приходится шаманить так:

for i:=1 to 9 do
begin
MoveUp(100);
MoveUp(10);
MoveUp(1);
end;










Категория: Графика | Добавил: PassCall
Просмотров: 506 | Загрузок: 4 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Мини-чат
200
Друзья сайта