|
19.05.2009, 09:50
|
#46
|
Нуждающийся
Регистрация: 16.11.2006
Сообщений: 56
Написано 9 полезных сообщений (для 29 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Сам пользую такую функцию вывода текста с принудительными переносами. В архиве мидлет в котором используется такая функция.
//многострочное отображение длинной строки
//st - строка; x, y координаты вывода; w, h - ширина и высота в буквах!!!; dlt - пропустить строк
function DrawLongStr(st : string; x, y : integer; w, h : integer; dlt : integer) : boolean;
var
s, ss : string;
i, j, n : integer;
prn : integer;
begin
DrawLongStr := true;
if dlt > 0 then
begin
n := w * dlt;
s := Copy(st, n, Length(st));
end
else
s := st;
for i := 1 to h do
begin
if Length(s) < w then
begin
DrawString(s, x, y + ((i - 1) * h_ltr));
DrawLongStr := false;
Break;
end;
ss := Copy(s, 0, w);
//принудительные переносы!!!
prn := -1;
prn := pos(ss, perenos);
if prn > -1 then
begin
ss := Copy(s, 0, prn);
prn := prn + 1;
end
else
prn := w;
s := Copy(s, prn{w}, Length(s));
DrawString(ss, x, y + ((i - 1) * h_ltr));
end;
end;
|
(Offline)
|
|
19.05.2009, 11:08
|
#47
|
Нуждающийся
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Lib_font32: Графические шрифты
AVIZO, а исходник не зя)))
Можно ли как-то вставить Enter (переход на следующую строку) в нужном мне месте? Если можно, пример в студию!
|
Библиотека Lib_resloader
Строка ### понимается как маркер конца файла
Строка # понимается как знак перевода строки
|
Последний раз редактировалось Richik, 19.05.2009 в 13:35.
|
(Offline)
|
|
19.05.2009, 17:48
|
#48
|
Нуждающийся
Регистрация: 16.11.2006
Сообщений: 56
Написано 9 полезных сообщений (для 29 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Исходник чего???
Вроде бы функцию выложил полностью. В ней все прозрачно (хотя можно сделать элегантнее).
|
(Offline)
|
|
19.05.2009, 18:10
|
#49
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: Lib_font32: Графические шрифты
А именно в библиотеке font32 можно как-то вставить Enter или хотя бы получить высоту текста? Если нет, то предлагаю создателю это сделать, если не трудно.
|
(Offline)
|
|
21.05.2009, 12:43
|
#50
|
Нуждающийся
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Winner, можно так:
В тексте на пустой строке, там, где надо установить перенос, ставим решетку.
Если строка равна "#", то строка равна "chr(32) + chr(13)"
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.05.2009, 01:32
|
#51
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: Lib_font32: Графические шрифты
Т.е. chr(32) + chr(13) - это и есть мой Enter? Можно немного разъяснить новичку этот момент?
|
(Offline)
|
|
22.05.2009, 03:59
|
#52
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Для переводов строки в разных операционных системах используются разные байты.
Винда - chr(13)+chr(10)
Линукс - chr(10)
Мак - chr(13)
Обычно когда ты ЭНТЕР нажимаешь в текстовом редакторе, то вставляются именно эти символы (свои на каждой ОС).
chr(32) - это вроде пробел, он-то тут причём?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Phantom за это полезное сообщение:
|
|
23.05.2009, 00:17
|
#53
|
Нуждающийся
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Возможно это так, но в инструкции написано, иначе
|
(Offline)
|
|
23.05.2009, 00:26
|
#54
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Richik, в инструкции к чему?
|
(Offline)
|
|
24.05.2009, 00:35
|
#55
|
Нуждающийся
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Lib_font32.txt
integer Format(s: string; b: integer) - Разбить длинный текст на мелкие строчки так, чтобы он помещался в
окно, заданное процедурой TextWindow. Функция возвращает расчётную высоту полученного разбитого
текста в пикселах. Параметр b определяет тип добавления текста:
0 - Форматировать новый текст (старый при этом будет удалён)
1 - Добавить строку в конец к уже отформатированному тексту
При необходимости вставки в текст переноса строки нужно делать так:
s:='Сейчас будет пере-' + chr(32) + chr(13) + 'нос текста.';
или для двойного переноса:
s:='Михаил Булгаков' + chr(32) + chr(13) + chr(13) + 'Мастер и Маргарита';
|
|
(Offline)
|
|
24.05.2009, 00:40
|
#56
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Здесь видимо просто добавляется пробел, для того, чтобы текст не упирался в край экрана (32dec=20hex, а это точно пробел), потом уже идет 13dec, это перевод строки.
|
(Offline)
|
|
24.05.2009, 21:31
|
#57
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Алгоритм разбиения текста работает так, что ему нужен пробел перед знаком переноса. Иначе перенос срабатывать не будет.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.05.2009, 23:52
|
#58
|
Нуждающийся
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Lib_font32: Графические шрифты
я же говорил :p
офтоп))
|
(Offline)
|
|
18.07.2009, 02:21
|
#59
|
AnyKey`щик
Регистрация: 19.02.2009
Сообщений: 14
Написано одно полезное сообщение
|
Ответ: Lib_font32: Графические шрифты
odd, ты не мог бы сделать, чтобы у шрифтов оставалась прозрачность и чтоб в генераторе можно было задать цвет в RGB... Просто как-то не очень красиво смотрится белый прямоугольник вокруг текста, а если выбрать белый цвет шрифта, то вобще нифига не видно... Сделай плиз если не трудно...
|
(Offline)
|
|
18.07.2009, 15:45
|
#60
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Не понимаю в чем проблема? Там отлично поддерживается прозрачность. Просто загрузи шрифт в Photoshop и сделай там прозрачный фон в самой картинке вместо белого фона. Либо перекрась белый фон на прозрачный с помощью либы Lib_alpha. Просто генератор шрифтов не очень хороший, не умеет делать шрифты с прозрачным фоном. Вечно потом приходится самому ручками доделывать. Аналогично поступаешь и с перекраской шрифта. В любом случае с перекраской или без без Photoshop не обойтись. Он нужен хотя бы для уменьшения веса самой картинки. Можно подобрать такой алгоритм сжатия, что размер картинки уменьшится в 2 и более раз.
Последний раз редактировалось odd, 18.07.2009 в 15:52.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:40.
|