Lib_font32: Графические шрифты
Вложений: 3
Поседнее обновление 02.10.2009
Начал ваять библиотеку с поддержкой графических шрифтов. Пока функции такие: 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 в пикселах. Это нужно, например, для того, чтобы прикинуть влезет ли данная строка на экран? Щас работаю над процедурой вывода текста в окошко с возможностью скролинга. Скоро будет. Сами шрифты можно создавать с помощью программы GenFont.exe, которая уже ранее выкладывалась на данном форуме. Соответственно в проект нужно будет добавлять для каждого шрифта 2 файлика: png и dat. При желании, можно делать полупрозрачность и менять цвет шрифта с помощью библиотеки Lib_alpha. По глобальным замыслам, это будет первая библиотека в череде библиотек реализации собственного GUI интерфейса. Позже будут библиотеки для меню и окон. PS: Всё таки иногда полезно подождать каменный цветок. |
Ответ: Lib_font32: Графические шрифты
Прикольно!
а можно суда еще и цвет шрифта добавить ? DrawString(s: string; x: integer; y: integer, color: integer) |
Ответ: Lib_font32: Графические шрифты
Добавил функции модификации шрифта, вывода длинного текста в окно и скролинга.
Теперь можно поспорить какая либа круче Lib_text aka MultiLine или моя. :-D Новый список функций: PHP код:
|
Ответ: Lib_font32: Графические шрифты
У меня функция Format вешает телефон, если в строке есть буква "я". Вот, например:
Код:
Program Font32test; |
Ответ: Lib_font32: Графические шрифты
Прошу прощения, маленькая опечаточка в программе. Пофиксено.
Щас работаю над добавлением функций регулировки межстрочного и межбуквенного расстояния, выравнивания. Скоро будет. PS: Исправь у себя в программе строку: Repaint; на if h<>0 then Repaint; :) |
Ответ: Lib_font32: Графические шрифты
Всё. Работы закончены. Добавил выравнивание, регулировку межстрочного и мужбуквенного расстояний. Всё, что я хотел добавить и сделать сделано. Библиотеку можно добавлять в коллекции. Обязательно почитайте документацию к библиотеке и посмотрите демку. Там я показал некоторые интересные возможности (компилировать только в английской версии MP).
|
Ответ: Lib_font32: Графические шрифты
А почему компилировать только в английской версии? У меня до этого три разных паскаля стояло, недавно оставил один - с твоего сайта... О_о Теперь нету английского у меня... :'(
- - - Добавил позже: Пробовал русской версей компилировать, всё скомпилировалось, но в архив jar не добавились либы АЛЬФА и ФОНТ32. После того, как их руками туда засунул, всё заработало. - - - Слушай, я примерно то же самое, что и ты хотел сделать, но мозга мне не хватает. Поэтому, у меня предложение, не мог бы ты сделать что-нибудь подобное, как в моей либе для стилизированного вывода текста. Сейчас поясню, для чего это нужно. Например, хочу я вывести многострочный, скролируемый текст, в котором есть и жирные буквы, и тонкие, и разноцветные, с разным выравниванием. Чтобы такое сделать через твою либу, придётся очень много писать. Представь, что мне нужно вывести строку, в которой каждая буква разного цвета - представь, какой код придётся писать. Почему бы не сделать описание стилей прямо в строке. А потом уже специальный метод в классе будет парсить строку и стилизировать всё это дело как надо. Ну типа как я сделал. Может ты круче что-то придумаешь? Тогда вообще офигенная вещь получится =) - - - А потом можно ещё прогу для компа написать для конвертации html документов в этот формат строки и тогда можно, например, сделать читалку текстов для мобил. А то я читал, на каком-то форуме люди пытались сделать прогу для конвертации html страниц в страницы oms для просмотра в опере мини, так максимум, что кто-то смог сделать - это прогу для конвертации через интернет - через сервак оперы мини. Вот. - - - В общем, что скажешь. Сложно будет это сделать? И нужно ли это кому-нибудь кроме меня? О_о |
Ответ: Lib_font32: Графические шрифты
Русская версия неправильно распознает запятую в списке библиотек. Т.е. если я напишу Uses alpha, font32; то программа будет искать 1 файл с именем Lib_alphafont32 или что-то типа того. Просто я в русской версии хотел сделать так, чтобы можно было добавлять библиотеки с любыми именами, а не типа Lib_*, но у меня ничего не получилось, а BackUp я забыл тогда сделать. В итоге нужно садиться и руссифицировать программу заново. А это довольно сложно. Хотел сделать руссификатор в виде крэка, так он насчитал, что более 500000 байт изменено и завис при создании патча.
Да я тоже уже подумываю добавить такие функции в библиотеку. У меня, например, есть мидлет HTML-справочник, который я хочу перевести на Lib_font32, но там без раскрашивания текста в разные цвета ну никак не обойтись. Сделать это правда будет не просто, но возможно. |
Ответ: Lib_font32: Графические шрифты
Видел твой HTML-справочник, качал. Сайт у тебя привлекательный.
|
Ответ: Lib_font32: Графические шрифты
Odd, можешь сделать функцию, которая показывает, на сколько пикселей вниз прокручен текст? И еще вот такой косяк: если, к примеру, вызвать MoveDown(10), а до конца осталось меньше 10 пикселей, то текст не прокрутится!
|
Ответ: Lib_font32: Графические шрифты
Цитата:
PHP код:
|
Ответ: Lib_font32: Графические шрифты
Я извращался примерно таким способом:
Код:
k:=KeyToAction(GetKeyPressed); |
Ответ: Lib_font32: Графические шрифты
Ну да. Это я и имел ввиду. А что это ты делаешь? Меню? Я щас работаю над его реализацией.
|
Ответ: Lib_font32: Графические шрифты
Не, это хелп в арканоиде. Посмотри в проектах, если хочешь, там исходник есть.
|
Re: Lib_font32: Графические шрифты
Библиотека супер, но помоему требует усовершенствования для идеала
*очень медленное отображение скролинга текста на моем телефоне около 1 фпс. исправить можно если генерировать 3 изображения в буфере и их скролить. тоесть верхсередина и низ и помере скролинга генерировать новые. но это конечно сложно. потому может алгоритм усовершенствовать. *остаются артефакты даже если в строке есть разделители, в тестовый пример вставь эту строку увидшшь артефакты буква "р" полностью вылазит s:='Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне.Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне. Пример перемотки длинного текста в окне.'; *если слово больше размера отображаемого окна, то оно не обрезается, что неплохо было бы исправить. |
Часовой пояс GMT +4, время: 09:41. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot