forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_font32: Графические шрифты (http://forum.boolean.name/showthread.php?t=6103)

GRAY_WOLF 25.02.2010 15:00

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 139337)
Ну, ещё разберемся почему ошибка у некоторых. Возможно потому, что вставка картинки должна идти всегда с новой строки.

Пример был тот что прилагался к либе. Я его только с компилировал и результат плачевный. Хз почему.

odd 27.02.2010 16:18

Ответ: Lib_font32: Графические шрифты
 
Могу только посоветовать обновить библиотеки Lib_font32 и Lib_resloader на более свежие. Сам сталкивался с подобной проблемой. У меня на настольном компе почему-то всё работает нормально, а при запуске на ноутбуке происходит либо зависание либо просто пишет [IMG 0]. Странно. Не понятно почему так.

GRAY_WOLF 27.02.2010 22:53

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 139805)
Могу только посоветовать обновить библиотеки Lib_font32 и Lib_resloader на более свежие. Сам сталкивался с подобной проблемой. У меня на настольном компе почему-то всё работает нормально, а при запуске на ноутбуке происходит либо зависание либо просто пишет [IMG 0]. Странно. Не понятно почему так.

А разве существует Lib_resloader новее чем от 22.06.2009г?
Ну а Lib_font32 из 125 поста - самая свежая, свежее не нашел...

Dimon 28.02.2010 15:07

Ответ: Lib_font32: Графические шрифты
 
помогите реальзовать автоскрол чтобы нажимаешь на GA_FIRE и текст сам листается, а когда еще раз нажимешь на GA_FIRE текст перестаёт листаться, т.е. автоскрол выключается
если так делаю то пока держу кнопку текст листаетс, отпускаю перестаёт а мне надо чтоб на 5 включался режим автолистинга, и на5 отключался. odd мне писал, но не получатся
key2:=GetKeyPressed;
if key2 = GA_FIRE then
begin
repeat
MoveDown(10); Cls; DrawTextWindow; DrawVScroll(0, text_height, GetPosition, hi); Repaint; Delay(200);
until key2=GA_FIRE end;

odd 02.03.2010 13:36

Ответ: Lib_font32: Графические шрифты
 
Вложений: 1
Держи работающий вариант. Ничего там сложного нет.

Dimon 02.03.2010 17:52

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 140227)
Держи работающий вариант. Ничего там сложного нет.

о спс а то я мучался у меня не включался

GRAY_WOLF 02.03.2010 22:25

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 140227)
Держи работающий вариант. Ничего там сложного нет.

Пример работает, а картинки так и не вставились... и при нажатии на джойстик желательно делать задержку иначе строки скачют на не определенное количество пикселей.

PHP код:

begin
            
if key GA_RIGHT then
            begin
                MoveDown
(hi-16); ClsDrawTextWindowDrawVScroll(0text_heightGetPositionhi); Repaint;Delay(250);
            
end;
            if 
key GA_DOWN then
            begin
                MoveDown
(16); ClsDrawTextWindowDrawVScroll(0text_heightGetPositionhi); Repaint;Delay(250);
            
end;
            if 
key GA_LEFT then
            begin
                MoveUp
(hi-16); ClsDrawTextWindowDrawVScroll(0text_heightGetPositionhi); Repaint;Delay(250);
            
end;
            if 
key GA_UP then 
            begin
                MoveUp
(16); ClsDrawTextWindowDrawVScroll(0text_heightGetPositionhi); Repaint;Delay(250);
            
end;
        
end


GRAY_WOLF 05.03.2010 00:20

Ответ: Lib_font32: Графические шрифты
 
Как заставить работать вот эту процедуру
PHP код:

Procedure Helper(s1strings2string);
 
begin
   Font
(0); ww:=Format(s10); DrawTextWindowxx:=xx ww;
   
Font(1); ww:=Format(s20); TextWindow(2xxwi 4hi 2);
   
DrawTextWindowxx:=xx wwTextWindow(2xxwi 4hi 2);
 
end

с новой либой. Мидлет не вешается, но и нет ни какого отображения информации. С Lib_font32 от 13.12.2009г такого не наблюдалось.

odd 05.03.2010 01:16

Ответ: Lib_font32: Графические шрифты
 
Не знаю. Надо глянуть саму программу полностью.

GRAY_WOLF 05.03.2010 19:50

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 140622)
Не знаю. Надо глянуть саму программу полностью.

Пример отправлен на Яндекс "мыло". Помощь ожидается?

GRAY_WOLF 09.03.2010 16:33

Ответ: Lib_font32: Графические шрифты
 
Odd так как можно заставить работать процедуру из 136 поста с новой либой фонт32? Или же работать со старой?

odd 09.03.2010 20:30

Ответ: Lib_font32: Графические шрифты
 
Вложений: 1
Долго колупался с поиском глюка у тебя. В итоге причина оказалась в банальной несовместимости шрифтов. У тебя шрифты Verdana_10 сгенерированы в старом генераторе. Но всё равно в процессе анализа немного модернизировал библиотеку и за это спасибо.

Держите более свежую.

GRAY_WOLF 09.03.2010 21:03

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 141340)
Долго колупался с поиском глюка у тебя. В итоге причина оказалась в банальной несовместимости шрифтов. У тебя шрифты Verdana_10 сгенерированы в старом генераторе. Но всё равно в процессе анализа немного модернизировал библиотеку и за это спасибо.

Держите более свежую.

Извиняюсь. Собрал архив из другой патки, а там в поекте не прописаны были шрифты в инициализации, но в проекте были добавлены оба варианта шрифтов. Т.к. работал и со старой версией библиотеки. На данный момент процедура работает с новой библиотекой.

cherepets 10.03.2010 12:00

Ответ: Lib_font32: Графические шрифты
 
еще заметил что зависает на старых телефонах новая версия.
3100 при прокрутке вверх-вниз большого окна, а также что сетклип не помогает(((

Dimon 11.03.2010 16:09

Ответ: Lib_font32: Графические шрифты
 
с исолюстрациями некоректкно расчитывает высоту текста. ПОстоянно на разных экрнаха видна часть текста. Чем меньше экран тем больше отобржается. Если не добавляю илюстрации то всё норм. ДАЖЕ В ТВОЁм примере с динозаврами глянь отображается не весь текст

odd 12.03.2010 14:36

Ответ: Lib_font32: Графические шрифты
 
Вложений: 2
Да, что-то теперь появились проблемы с форматированием текста. Нужно разобраться...

Все нормально, разобрался. Действительно, при добавлении иллюстраций часть текста внизу не отображалась.

Dimon 12.03.2010 20:12

Ответ: Lib_font32: Графические шрифты
 
odd большое спасибо. Еще вопрос: как мне реализовать смену шрифтов при нажатии клавиши 0? Если одиночную, т.е. с одного FOnt(0) на второй Font(1) и обратно я сделал вот так: всё работает)

Цитата:

f1: boolean;
-----------------------------------------
Font(0); f1:=false;
-------------------------------------------
if (f1) then
begin font(1); DrawTextWindow; repaint;
if getkeyclicked= KE_KEY0 then f1:=false; end;
if f1 =false then
begin Font(0); DrawTextWindow; repaint; end;
-------------------------------------------------------
if getkeyclicked = KE_KEY0 then begin f1:=NOT f1; end;
А как сделать так:
например, нажимаю на 0 шрифт меняется. Потом, уже во врмея нового шрифта если нажимаю на 0, то опять меняется на Font(2), а если еще, 3 раз нажимаю, то тогда уже меняется вновь на 1. (FOnt(0)).
Я пытался сделать так:

Цитата:

-------------------------
f1,f2:boolean;
------------------------
f1:=false; f2:=false;
-------------------------
if (f1) then
begin f2:=false; font(1); DrawTextWindow; repaint; if getkeyclicked= KE_KEY0 then f1:=false; f2:=NOT f2; end;
if f1 =false then begin f:=0; Font(0); DrawTextWindow; repaint; end;
if (f2) then
begin
font(2); f1:=false; DrawTextWindow; repaint;
if getkeyclicked= KE_KEY0 then f2:=false; f1:=false; drawtextwindow; repaint;
end;
if f2 =false then
begin ; Font(0); DrawTextWindow; repaint; end;
-----------------------------------------------------------
if getkeyclicked = KE_KEY0 then begin f1:=NOT f1; end;
-----------------------------------------------------
то не выходит ничего :( подскажите плиз . Я хочу сделать чтоб разного цвета шрифты могли быть, т.е например так
Font(0); LoadFont('Arial10'); color(255, 0, 0, 0);
Font(1); LoadFont('Arial10'); color(255, 255, 0, 0);
Font(2); LoadFont('Arial10'); color(255, 0, 0, 255);
И чтоб они менялись, как я писал выше.

odd 12.03.2010 21:03

Ответ: Lib_font32: Графические шрифты
 
Попробуй что-то типа такого:
PHP код:

var current_fontinteger;
......
current_font:=0;
......
if 
getkeyclicked KE_KEY0 then
begin
current_font
:=current_font+1;
if 
current_font 3 then current_font:=0;
Font(current_font);
DrawTextWindow;
Repaint;
Delay(200);
end


GRAY_WOLF 12.03.2010 21:16

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 141678)
Да, что-то теперь появились проблемы с форматированием текста. Нужно разобраться...

Все нормально, разобрался. Действительно, при добавлении иллюстраций часть текста внизу не отображалась.

А картинок так и не ма в мидлете...:''((

Dimon 12.03.2010 22:30

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от GRAY_WOLF (Сообщение 141719)
А картинок так и не ма в мидлете...:''((

у меня есть :) :super: и причём и на телефоне, и на всех эмуляторах

odd 12.03.2010 23:20

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от GRAY_WOLF (Сообщение 141719)
А картинок так и не ма в мидлете...:''((

Пришли программу, может я разберусь. Может в самой программе дело?

GRAY_WOLF 12.03.2010 23:36

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 141731)
Пришли программу, может я разберусь. Может в самой программе дело?

Я компилирую прилагаемый примет только...
Все другие твои примеры идут на УРА!!!

Dimon 13.03.2010 13:16

Ответ: Lib_font32: Графические шрифты
 
odd, а можно как нибудь загрузить шрифт например FOnt(0); не из файла, а как стандартный шрифт телефона. Наверно экономнее буде расходоваться память heap. Т.е. например Font(0); стандартный обычный, Font(1): жирный стандартный, т.к и мидлет будет весить меньше и производительность увеличится =)

odd 13.03.2010 16:25

Ответ: Lib_font32: Графические шрифты
 
Гм. Интересная идея.

GRAY_WOLF 13.03.2010 23:36

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 141754)
Гм. Интересная идея.

И под эту идею писать свою либу чтоб меньше было глюков, а то скоро все возможности явы в нее перейдут...

Dimon 17.03.2010 18:03

Ответ: Lib_font32: Графические шрифты
 
odd а можно как нибудь получить позицию курсора? Например сделать, чтоб если текст в самом низу и больше не листается, то автоматически выключить автоскролинг? ПОжалуйста, если можешь, скажи как так сделать :)

cherepets 17.03.2010 22:19

Ответ: Lib_font32: Графические шрифты
 
Dimon, почти к каждой либе добрый автор прикладывает файл *.txt. В нем сказано:
Цитата:

GetPosition - Выяснить текущее положение текста в пикселах.
К примеру, у вас очень длинный текст, который не влазит в окно. Вы его передвинули вниз, скажем, на 33 пиксела
и вверх на 10 пикселов. Функция GetPosition вернет 23.
__________________________________________________
добавлю так же о функции Format, что
Цитата:

Функция возвращает расчётную высоту полученного разбитого
текста в пикселах.

GRAY_WOLF 17.03.2010 22:30

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от cherepets (Сообщение 142195)
Dimon, почти к каждой либе добрый автор прикладывает файл *.txt

Так ведь это ещё и читать надо оказывается...

Dimon 17.03.2010 23:08

Ответ: Lib_font32: Графические шрифты
 
БЛИН Я ХОЧУ СДЕЛАТЬ чтоб не точное кол-во пикселей, а чтоб ЕСЛИ В САМОМ КОНЦЕ то автоскрол не действует! Я не могу считать точное кол-во пикселей

cherepets 18.03.2010 01:01

Ответ: Lib_font32: Графические шрифты
 
тебе функция Format говорит "где у нас самый конец", а GetPosition - текущее положение. вывод:

h:=Format...
if GetPosition=h then...

Dimon 18.03.2010 15:14

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от cherepets (Сообщение 142225)
тебе функция Format говорит "где у нас самый конец", а GetPosition - текущее положение. вывод:

h:=Format...
if GetPosition=h then...

и так ничего не работает. фунция формат не говорит мне что текст в конце. Твой пример не пашет

odd 18.03.2010 20:06

Ответ: Lib_font32: Графические шрифты
 
Делать надо примерно так:
1. Форматнули текст и записали высоту полученного разбитого текста в переменную, скажем HGT
2. Перематываем текст как угодно
3. Если GetPosition + Высота окна для вывода текста (обычно на весь экран, то есть GetHeight) < HGT, то автоматически скроллить можно иначе скроллить не имеет смысла.

NightDeath 31.03.2010 01:17

Ответ: Lib_font32: Графические шрифты
 
Какой прогой надо генерировать шрифты для новой версии либы?

cherepets 31.03.2010 11:37

Ответ: Lib_font32: Графические шрифты
 
которая в том же посте что и сама либа
#94

NightDeath 31.03.2010 13:48

Ответ: Lib_font32: Графические шрифты
 
О,точно,не на той сьранице смотрел))спс

odd 10.04.2010 15:01

Ответ: Lib_font32: Графические шрифты
 
Вложений: 2
Специальная версия библиотеки с поддержкой функции поворота экрана.
Добавились только команды:

rotate(k: integer) - Установить угол вращения
0 - 0 градусов
5 - 90 градусов
3 - 180 градусов
6 - 270 градусов

repaint - Перерисовка экрана для тех случаев когда экран повернут.
При угле поворота 0 можно пользоваться и стандартным Repaint.

Пример использования прилагается.

NightDeath 10.04.2010 15:47

Ответ: Lib_font32: Графические шрифты
 
Большое спасибо!!! :)

Dimon 10.04.2010 18:47

Ответ: Lib_font32: Графические шрифты
 
Спасибо :)

NightDeath 14.04.2010 18:28

Ответ: Lib_font32: Графические шрифты
 
опять столкнулся с проблемой,по прежнему не перерисовывается кусок экрана,вот код,который я использую для поворота экрана(он исполняется при нажатии клавиши 0 в меню).

if rc_i=1 then
begin font32.rotate(5); rc_i:=6;end;
else
begin font32.rotate(0);rc_i:=1;end;
memclean.clean;wi:=getwidth;hi:=getheight;
font32.init(1);
Font(0); LoadFont(font);font32.color(255,255,255,255);memcl ean.clean;

пробовал и без загрузки шрифта после поворота экрана(изначально так и было)-эффект такой же

перерисовку делаю так

if rc_i=6 then font32.repaint; else repaint;

odd 14.04.2010 18:58

Ответ: Lib_font32: Графические шрифты
 
Возможно из-за того, что getwidth и getheight берет ширину и высоту экрана при обычном режиме. Напиши 2 функции wi и hi, которые будут возвращать ширину и высоту экрана с учетом текущего поворота. кроме того при повороте нужно делать переустановку окна вывода текста (с учетом изменившейся ширины и высоты) и переформатирование текста.

NightDeath 14.04.2010 20:18

Ответ: Lib_font32: Графические шрифты
 
Код вроде правильный,могу тебе скинуть в личку его,пробовал делать так textwindow(0,20,320,240-40)-безрезультатно.Текст вначале на весь экран,нормально,но когда использую moveup или movedown,то двигаются только 240 пикселей из 320.Поворот я делаю в меню,т.е. текствиндов и формат полюбому всегда загружаются после поворота.Выяснил,что пример,который ты выложил на прошлой странице прекрастно работает с lib_rc и ранней версией font32.Возможен ли конфликт с другими либами вроде resloader?

odd 14.04.2010 23:57

Ответ: Lib_font32: Графические шрифты
 
Да не, конфликта быть не должно. Я ещё проверю работу moveup и movedown.

NightDeath 15.04.2010 15:31

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от odd (Сообщение 144762)
Да не, конфликта быть не должно. Я ещё проверю работу moveup и movedown.

ток ты ответь даже если не найдешь никакой ошибки в либе

NightDeath 19.04.2010 16:22

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от NightDeath (Сообщение 144721)
опять столкнулся с проблемой,по прежнему не перерисовывается кусок экрана,вот код,который я использую для поворота экрана(он исполняется при нажатии клавиши 0 в меню).

if rc_i=1 then
begin font32.rotate(5); rc_i:=6;end;
else
begin font32.rotate(0);rc_i:=1;end;
memclean.clean;wi:=getwidth;hi:=getheight;
font32.init(1);
Font(0); LoadFont(font);font32.color(255,255,255,255);memcl ean.clean;

пробовал и без загрузки шрифта после поворота экрана(изначально так и было)-эффект такой же

перерисовку делаю так

if rc_i=6 then font32.repaint; else repaint;

баг был устранен с помощю вставки ф-ии setclip перед drawtextwindow
т.е делал так setclip(0,0,getwidth,getheight);drawtextwindow; все ок пашет

sidav 14.07.2010 15:33

Ответ: Lib_font32: Графические шрифты
 
Люди, подскажите абсолютному ламеру, как просто вывести текст так, чтобы он переносился если не влезает в одну строку?
Допустим, нам нужно вывести текст в переменной string с автоматическим переносом на экран телефона любого размера. Как будет выглядеть код, который отображает этот текст?

GRAY_WOLF 14.07.2010 16:13

Ответ: Lib_font32: Графические шрифты
 
Sidav - http://www.forum.boolean.name/showthread.php?t=11688 - изучай.

sidav 14.07.2010 16:22

Ответ: Lib_font32: Графические шрифты
 
Эээх, я же просил простенький пример...

sidav 14.07.2010 16:36

Ответ: Lib_font32: Графические шрифты
 
Хм. Судя по хелпу в либе, это должно работать:
program textik;
uses font32;
var
a:integer;
s:string;

begin
init(1);
textwindow(0,0,128,160);
s:='АААААААААААААААААААААААААААААААААААААААААААААА ';
a:=format(s,0);
drawtextwindow;
repaint;
delay(2500);
end.


Но оно НЕ РАБОТАЕТ!

Появляется пустой экран. И всё. Мидлет зависает.
Запускал на KEmulator

psih1 16.07.2010 10:21

Ответ: Lib_font32: Графические шрифты
 
Такая же проблема

Banan 16.07.2010 11:16

Ответ: Lib_font32: Графические шрифты
 
Скорее всего либа виснет потому что слово 'ААААААААААААААААААААААААААААААААААААААААААААА' не помещается в экран, у меня была такая проблема когда я пытался сделать свой вывод с переносами и выравнванием. Если использовать небольшие слова то все должно работать.

sidav 16.07.2010 12:50

Ответ: Lib_font32: Графические шрифты
 
program textik;
uses font32;
var
a:integer;
s:string;

begin
init(1);
textwindow(0,0,128,160);
s:='Сргсл рпварп оьпр глпгл';
a:=format(s,0);
drawtextwindow;
repaint;
delay(2500);
end.



Это тоже не пашет...

GRAY_WOLF 16.07.2010 13:01

Ответ: Lib_font32: Графические шрифты
 
А вы шрифты графические к проекту добавили? И либа менялась и генератор шрифтов тоже. Ищите в теме - все работает.

Bananbl4 16.07.2010 15:44

Ответ: Lib_font32: Графические шрифты
 
Должно быть что-то типа:
Код:

program textik;
uses font32;
var j : integer;
begin
  font32.init(2);
  font32.font(1);
  font32.LoadFont('Times_new_roman_72');
  font32.TextWindow(0, 0, getwidth, getheight);
  j := font32.Format('Ктулху Фхтагн!', 0);
  font32.DrAwTextWindow;
  repaint;
  delay(10000);
  end.


sidav 16.07.2010 18:55

Ответ: Lib_font32: Графические шрифты
 
А на стандартных шрифтах работать не будет?

Bananbl4 17.07.2010 07:46

Ответ: Lib_font32: Графические шрифты
 
Точно не знаю, но скорее всего нет. А зачем стандартные?
У меня на Самсе D780 в 1 строку везает символов 30-35, а на SE w760i 15-20. Проще взять какой нибудь кегля этак 10-14, чтобы на всех телах одинаково было.

GRAY_WOLF 17.07.2010 10:32

Ответ: Lib_font32: Графические шрифты
 
Вот для этого и была написана эта либа для использования графических шрифтов, что бы на всех телах с одинаковым разрешением отображалось одинаковое количество символов в строке.

sidav 17.07.2010 10:38

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от Bananbl4 (Сообщение 155013)
Должно быть что-то типа:
Код:

program textik;
uses font32;
var j : integer;
begin
  font32.init(2);
  font32.font(1);
  font32.LoadFont('Times_new_roman_72');
  font32.TextWindow(0, 0, getwidth, getheight);
  j := font32.Format('Ктулху Фхтагн!', 0);
  font32.DrAwTextWindow;
  repaint;
  delay(10000);
  end.


Твой этот код тоже не прёт. Но экран на этот раз серый.

GRAY_WOLF 17.07.2010 10:53

Ответ: Lib_font32: Графические шрифты
 
Если мне память не изменяет, то в названии шрифта не должно быть ни пробелов, ни чего прочего. Отсюда и баг.(пишу с тела пример подробный дать не могу).

sidav 17.07.2010 11:34

Ответ: Lib_font32: Графические шрифты
 
Может, сам odd поможет?

odd 18.07.2010 01:21

Ответ: Lib_font32: Графические шрифты
 
Цитата:

Сообщение от sidav (Сообщение 155111)
Может, сам odd поможет?

А в чем проблема? Попробуйте просто переименовать шрифт для начала.

sidav 18.07.2010 13:16

Ответ: Lib_font32: Графические шрифты
 
odd, напиши пожалуйста самый что ни на есть простой код переносящегося текста, без свистелок и перделок

odd 18.07.2010 16:59

Ответ: Lib_font32: Графические шрифты
 
Вложений: 2
Пример вывода текста с переносами без свистелок и перделок.
Проще некуда. Текст:

PHP код:

Program Font32test;
Uses    font32;
Var    
iinteger;
        
Begin
    font32
.init(1); // Инициализация библиотеки для 1 шрифта
    
Font(0); LoadFont('lcd16'); // Загружаем шрифт № 0
    
i:=Format('Простейший пример вывода текста с переносами'0); // Разбиение текста на строки
    
Color(25501000); // Устанавливаем цвет и прозрачность
    
DrawTextWindow// Рисуем текст
    
Repaint// Перерисовка экрана
    
Delay(5000);    // Пауза 5 секунд
End


sidav 19.07.2010 08:39

Ответ: Lib_font32: Графические шрифты
 
Спасибо, пашет :) А что там за файл .dat в папке res?

psih1 19.07.2010 09:59

Ответ: Lib_font32: Графические шрифты
 
Это сами шрифты вроде
ха что у дивительно этот пример робит


Часовой пояс GMT +4, время: 03:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot