|
02.01.2010, 05:34
|
#76
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_font32: Графические шрифты
odd, и сново огромное спасибо..
и еще одна вещь для полного счастья..
эт будет не тяжело сделать:
нужно чтоб после вызова Format можно было узнать на сколько строк был разбит текст
(т.е. добавить функцию типо StringsCount или т.п.)
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
03.01.2010, 22:27
|
#77
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_font32: Графические шрифты
а разве сейчас функция format количество строк не возвращает?
__________________________________________________ ________
ой, извини, перепутал, там высота в точках...
никогда не использовал то что возвращает эта функция, вот и перепутал...
Последний раз редактировалось cherepets, 04.01.2010 в 13:29.
|
(Offline)
|
|
05.01.2010, 09:17
|
#78
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_font32: Графические шрифты
В описании к либе было сказано:
Функция возвращает расчётную высоту полученного разбитого текста в пикселах.
|
Ну, разве что делить это число на высоту шрифта..
Не удобно както, особенно если шрифтов несколько и они разные по высоте..
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
08.01.2010, 10:10
|
#79
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Ладно, меня сейчас интересует другой вопрос.
После форматирования в Format и вывода через DrawTextWindow,
текст "вылазит" за указаные мной размеры окна.
Что делать чтоб такого не было?
__________________
Уважай собеседника, а лучше подари ему +
Последний раз редактировалось Trazzy, 09.01.2010 в 16:24.
Причина: убрал скриншот..
|
(Offline)
|
|
08.01.2010, 16:02
|
#80
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_font32: Графические шрифты
я на прошлой странице писал уже об этом.
лично я нашел такой выход: imagefromcanvas(); drawtextwindow; drawimage();
думаю суть понятна)))
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.01.2010, 23:26
|
#81
|
Разработчик
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений (для 93 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Сообщение от ArtikZ
Ладно, меня сейчас интересует другой вопрос.
После форматирования в Format и вывода через DrawTextWindow,
текст "вылазит" за указаные мной размеры окна.
Что делать чтоб такого не было?
__________________
|
Посмотри этот пример
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
|
(Offline)
|
|
09.01.2010, 18:20
|
#82
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_font32: Графические шрифты
2 GRAY_WOLF: я не понимаю чем может помочь твой пример в такой ситуации.. Я уже писал, что с составлением меню, выводом текста и использованием либ у меня проблем нет. А ты попробуй используя последнюю версию либы Lib_font32 сделать DrawTextWindow не на весь экран, а чтоб снизу осталось пикселей 20-30.. Ниже пример программы с этой проблемой.
2 cherepets: спс, частично решило проблему с выводом..
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
09.01.2010, 21:24
|
#83
|
Разработчик
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений (для 93 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Вот так путем подбора высоты на разрешении 128*128 глюк изчез.
Font(1); TextWindow(3, 22, gw-12, gh-40); txth:=Format('Если посмотреть в эмуляторе с расширением 130х130 - под "выход"ом глюк..'+chr(13)+chr(13)+ 'вот эта строчка', 0); DrawTextWindow;
Так же поправь выход.
repeat gk1:=getKeyClicked; until gk1 <> KE_NONE; if gk1=KE_STAR then halt;// KE_POUND - это решетка, а не звёздочка.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
|
(Offline)
|
|
10.01.2010, 08:34
|
#84
|
Разработчик
Регистрация: 24.11.2008
Адрес: UA
Сообщений: 504
Написано 110 полезных сообщений (для 225 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Вот так путем подбора высоты на разрешении 128*128 глюк изчез.
|
2 GRAY_WOLF, это не решение... ты просто опустил окно на 3px ниже, тем самым уменьшил видимость той строчки из "дырки".. Конечно это частично решает проблему, если строк останется столько же... а если их будет намного больше и текст будет прокручиватся?!.. все равно покажутся те букаффки.. Это не код программы которую я делаю, это всего лишь пример в котором я хотел показать в чем "запарка" этой библиотеки. Конечно в моем примере можно решить эту проблему просто, например прорисовав нижнюю полоску после вывода окна с текстом. Но мне было интересно узнать как другие обходят эту проблему не рисуя поверху той "дырки".. Вот cherepets - маладец, понял ход моих мыслей..
З.Ы. а выход то фигня, все равно на скорую руку писал.. не заметил
__________________
Уважай собеседника, а лучше подари ему +
|
(Offline)
|
|
10.01.2010, 09:17
|
#85
|
Разработчик
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений (для 93 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Такой же глюк и с меню. Если текст в пункте меню большой и делаешь его прокрутку, то окно приходится делать на весть дисплей.
Вот оригинальный код от odd он к тому же еще и с сенсором
procedure Cls2; // Очистка экрана begin SetColor(15,155,255); FillRect(0,0,wi,hi); end; Procedure ShowInfo(s: string); // Показ какой-либо информации var text_height, y: integer; hh: boolean; im: Image; begin hh:=false; im:=LoadImage('/beck.png'); Loadvscroll(LoadImage('/vscroll.png')); // Загрузка скина для скроллера SetVScroll(wi - VScrollWidth, 0, hi - 22); // Установка положения и длины скроллера vscroll.SetOffset(6); // Отступ (чтоб не закрыть ползунком стрелочки) TextWindow(2, 2, wi - VScrollWidth - 2, hi - 22); // Установка текстового окна (на весь экран за вычетом ширины скроллера) text_height:=Format(s, 0); Cls2; DrawTextWindow; if text_height < hi - 22 then hh:=true; if hh = false then DrawVScroll(0, text_height, GetPosition, hi - 20); else DrawVScroll(0, text_height, 0, 0); FillRect(0, hi - 22, wi, 22); DrawImage(im, wi - 56, hi - 20); Repaint; Delay(200);//Вот это как раз закрашивает ту часть дисплея в низу repeat // Главный цикл программы key2:=GetKeyPressed; key:=KeyToAction(key2); Delay(5); if hh = false then begin if key = GA_DOWN then begin MoveDown(2); Cls2; DrawTextWindow; DrawVScroll(0, text_height, GetPosition, hi - 20); end; if key = GA_UP then begin MoveUp(2); Cls2; DrawTextWindow; DrawVScroll(0, text_height, GetPosition, hi - 20); end; FillRect(0, hi - 20, wi, 20); DrawImage(im, wi - 56, hi - 20); Repaint;//Вот это как раз закрашивает ту часть дисплея в низу end; if (pointer_state = 1) then begin y:=pointer_pressed_y; if (pointer_pressed_x > wi - GetImageWidth(im)) and (pointer_pressed_x < wi) and (pointer_pressed_y > hi - GetImageHeight(im)) and (pointer_pressed_y < hi) then break; // Выход если нажали на кнопку выход на сенсорном экране While (pointer_state = 1) do Delay(50); // Ждем пока отпустит перо (для перемотки текста пером) y:=y - pointer_dragged_y; // Отпустил if y > 0 then MoveUp(y) else MoveDown(-y); // Перемотка текста Cls2; DrawTextWindow; DrawVScroll(0, text_height, GetPosition, hi - 20); end; if (key2=-4) or (key2=-7) or (key2=22) then break; // Выход until false; end;
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
Последний раз редактировалось GRAY_WOLF, 10.01.2010 в 18:51.
Причина: Добавлен код.
|
(Offline)
|
|
10.01.2010, 18:25
|
#86
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_font32: Графические шрифты
а есть еще вопрос: мне нужен шрифт без сглаживания, а генфонт по умолчанию все гладит. кроме рисования файла шрифта самому пейнтом есть идеи?
__________________________________________________ ________________
также заметил что в генфонт кегли неправильные:
8й размер шрифта генфонта соответствует настоящему 10му.
|
(Offline)
|
|
12.01.2010, 01:25
|
#87
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_font32: Графические шрифты
Сообщение от cherepets
а есть еще вопрос: мне нужен шрифт без сглаживания, а генфонт по умолчанию все гладит. кроме рисования файла шрифта самому пейнтом есть идеи?
__________________________________________________ ________________
также заметил что в генфонт кегли неправильные:
8й размер шрифта генфонта соответствует настоящему 10му.
|
Можно убрать сглаживание в фотошопе путем уменьшения количества цветов в картинке до двух.
|
(Offline)
|
|
12.01.2010, 08:10
|
#88
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_font32: Графические шрифты
это кривой способ - результат крайне грусный...
сейчас я в фотшопе набиваю заново все символы, что не быстро...
|
(Offline)
|
|
12.01.2010, 14:43
|
#89
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_font32: Графические шрифты
А ClearType на это не влияет?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.01.2010, 18:18
|
#90
|
Бывалый
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений (для 215 пользователей)
|
Ответ: Lib_font32: Графические шрифты
ViNT, гениально! отключил сглаживание в системе и все круто))))
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:42.
|