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)

odd 10.08.2008 09:19

Ответ: Lib_font32: Графические шрифты
 
У тебя наверное экран 240х320, а буковки маленькие вот и медленно скроллируется потому что надо отрисовать оч. много букаф. Сделай шрифт побольше или скролируй сразу на 2 или 3 пиксела. Вся проблема в том, что там учитывается фон под текстом. Если бы не фон, то можно было бы скролить всё окно как одну картинку, что было бы намного быстрее. Можно добавить функцию типа учитывать фон или нет...
Ладно. Будем фиксить... :@

Kurdt 10.08.2008 12:09

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

(в библиотеке твоей пробовал ставить 4 пикселя здвиг. больше если воодишь то скролит не доконца)

Kurdt 15.08.2008 20:29

Re: Lib_font32: Графические шрифты
 
odd можешь сделать функции скрол боттом и скрол топ
для коректного использования скрола нехватает этих функций, или просто поставь если MoveDown(x) (текущая позиция + x ) > (высоты в пикселях поля - высота отображаемого окна) то делать скрол ботом или наоборот если в верху

odd 18.08.2008 08:26

Ответ: Lib_font32: Графические шрифты
 
Хорошо. Я подправлю функции скролинга.

Piligrim 18.08.2008 14:53

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

odd 20.08.2008 08:41

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

Сообщение от pilgrim (Сообщение 84643)
Большая просьба к авторам библиотек:
1. Обновлять загрузки в первом сообщении темы, а не добавлять их по всей теме.
2. Указывать что изменилось в библиотеке и совместима ли она со старой версией. Если нет, то оставлять старую версию также.

Я не могу редактировать свой первый пост :mad: видимо прав не хватает. :dontknow:
Нельзя ли что-то там подкрутить в настройках форума?... :wallbash:

Я подкорректировал перемотку текста. Теперь нормально всё должно отображаться. Ещё добавлена функция GetPosition (См. документацию) для поддержки полосы прокрутки.

Rosetau 08.11.2008 23:21

Ответ: Lib_font32: Графические шрифты
 
подскажите пожалуйста

у меня в проге функция, которая в зависимости от параметром показывает на экране разный длинный текст

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

odd 11.11.2008 08:04

Ответ: Lib_font32: Графические шрифты
 
Странно. По-идее процедура format должна сама устанавливать перемотку на 0 позицию, что конечно не всегда хорошо. Например, я подгужаю текст небольшими порциями и добавляю к уже отформатированному тексту. В этом случае каждый раз перематывать неудобно. Если у тебя format работает некорректно, попробуй просто перед отображением нового текста перематывать его вверх на какую-то заранее завышенную величину, типа 100000.

Вот более свежая версия библиотеки (исправлен баг с отображением длинных слов, кот. не влазят в одну строку и некоторые другие мелкие подправки):

Piligrim 11.11.2008 13:36

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

http://forum.boolean.name/showthread.php?t=5499 и внимательно!

odd 14.11.2008 03:32

Ответ: Lib_font32: Графические шрифты
 
Прям как в фильме "Лолита": "Не стреляйте, не стреляйте..." :-D

Блин. Я не виноват. Сколько вам объяснять:
У МЕНЯ НЕТ ПРАВ НА РЕДАКТИРОВАНИЕ СВОИХ СТАРЫХ ПОСТОВ.
Если бы были, я бы всегда свежие библиотеки выкладывал на самой первой странице. И вообще готовится крупное обновление всех библиотек пакета, которое будет выложено и по-идее в дальнейшем выкладываться в соответствующей теме. "GUI2", кажется?..

GomZik 26.12.2008 01:26

Ответ: Lib_font32: Графические шрифты
 
Почемуто, если отградить TextWindow сверху, то при скроллинге получаеться, что текст выходит за верхнюю рамку, а ведь я просто хотел совместить VScroll и окна...в итоге текст залазит на верх окна и вообще при малейшем скролинге убираеться заголовок окна...

odd 26.12.2008 19:01

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

Сообщение от GomZik (Сообщение 92841)
Почемуто, если отградить TextWindow сверху, то при скроллинге получаеться, что текст выходит за верхнюю рамку, а ведь я просто хотел совместить VScroll и окна...в итоге текст залазит на верх окна и вообще при малейшем скролинге убираеться заголовок окна...

Попробуй окно скроллинга задавать ПОСЛЕ того как отрисуешь заголовок окна. Просто функция TextWindow запоминает состояние экрана в момент вызова и потом восстанавливает фон, используя эту информацию.

GomZik 27.12.2008 03:30

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

Program VscollDemo;

Uses        gui32, vscroll, font32;

Var                wi, hi, text_height, key: integer;

Begin       
       
        wi:=GetWidth; hi:=GetHeight; // Ширина и высота экрана
       
        // ------------------------- Загружаем шрифт ---------------------------
        font32.init(1);
        Font(0); LoadFont('Verdana_11');
       
        gui32.init;gui32.setskin(loadimage('/main.png'));
        gui32.SetWindow(0,0,wi,hi,'Письмо');
        gui32.showwindow;
       
        Loadvscroll(LoadImage('/vscroll.png')); // Загрузка скина для скроллера
        SetVScroll(wi - VScrollWidth, 24, hi-24); // Установка положения и длины скроллера
        vscroll.SetOffset(16); // Отступ (чтоб не закрыть ползунком стрелочки)
       
        TextWindow(0, 24, wi - VScrollWidth, hi-24); // Установка текстового окна (на весь экран за вычетом ширины скроллера)
       
        text_height:=Format('"Это - признание: я люблю вас," - так начиналось письмо, и в продолжение одной искаженной секунды я принял этот истерический почерк за каракули школьницы: "На днях, в воскресенье, во время службы (кстати хочу пожурить вас, нехорошего, за отказ прийти посмотреть на дивные новые расписные окна в нашей церкви), да, в это воскресенье, так недавно, когда я спросила Господа Бога, что мне делать, мне было сказано поступить так, как поступаю теперь. Другого исхода нет. Я люблю вас с первой минуты, как увидела вас. Я страстная и одинокая женщина, и вы любовь моей жизни. А теперь, мой дорогой, мой самый дорогой, mon cher, cher Monsieur, вы это прочли; вы теперь знаете. Посему попрошу вас, пожалуйста, немедленно уложить вещи и отбыть. Это вам приказывает квартирная хозяйка. Уезжайте! Вон! Departez! Я вернусь к вечеру, если буду делать восемьдесят миль в час туда и обратно - без крушения (впрочем, кому какое дело?) и не хочу вас застать. Пожалуйста, пожалуйста, уезжайте тотчас, теперь жe, даже не читайте этой смешной записки до конца. Уезжайте. Прощайте. Положение, mon cheri, чрезвычайно простое. Разумеется, я знаю с абсолютной несомненностью, что я для вас не значу ничего, ровно ничего. О да, вы обожаете болтать со мной (и шутить надо мною, бедной); вы полюбили наш гостеприимный дом, мне нравящиеся книги, мой чудный сад и даже проказы моей шумной дочки; но я для вас - ничто. Так? Так. Совершенное ничто. Но, если, по прочтении моего "признания", вы решили бы, как европеец и сумрачный романтик, что я достаточно привлекательна для того, чтобы вам воспользоваться моим письмом и завязать со мной "интрижку", тогда знайте, это будет преступно - преступнее, чем было бы насилие над похищенным ребенком. Видите ли, любимый, если бы вы решили остаться, если бы я вас застала тут (чего, конечно, не случится, и потому могу так фантазировать), самый факт вашего оставания мог бы быть истолкован только в одном смысле: что вы для меня хотите стать тем же, чем я хочу стать для вас - спутником жизни - и что вы готовы соединить навсегда свою жизнь с моей и быть отцом моей девочки. Позвольте мне еще чуточку побредить и побродить мыслью, мой драгоценнейший; ведь я знаю, вы уже разорвали это письмо, и его куски (неразборчиво) в водоворот клозета. Мой драгоценнейший, mon tres, tres cher, какую гору любви я воздвигла для тебя в течение этого магического июня месяца! Знаю, как вы сдержанны, как много в вас "британского". Возможно, что вашу старосветскую замкнутость, ваше чувство приличия, покоробит прямота бедной американочки! Вы, который скрываете ваши сильнейшие порывы, должны почесть меня бесстыдной дурочкой за то, что раскрываю так широко свое несчастное раненое сердце. В былые годы я испытала немало разочарований. Мистер Гейз был прекрасный человек, надежный и цельный, но, увы, он был на двадцать лет старше меня, так что - но не будем сплетничать о прошлом. Мой дорогой, твое любопытство должно быть полностью удовлетворено, если ты пренебрег моею просьбой и дочитал это письмо до горького конца. Впрочем, это неважно. Уничтожь его - и уезжай. Не забудь оставить ключи у себя на столе. И хоть какой-нибудь адрес, чтобы я могла вернуть двенадцать долларов, заплаченные тобой за остаток месяца. Прощай, дорогой мой. Молись за меня - если ты когда-нибудь молишься"', 0);

        DrawTextWindow; DrawVScroll(0, text_height, 0, hi-24); Repaint;
       
        SetColor(255,255,255);
       
        repeat // Главный цикл программы
                key:=KeyToAction(GetKeyPressed);
                if key = GA_DOWN then
                        begin
                                MoveDown(2); // Сдвигаем текст вниз
                                FillRect(0,0,wi,hi); // Очистка фона
                                gui32.showwindow;
                                DrawTextWindow; // Рисуем текст
                                DrawVScroll(0, text_height, GetPosition, hi-24); // Отрисовка скроллера
                end;
                if key = GA_UP then
                        begin
                                MoveUp(2); // Сдвигаем текст вверх
                                FillRect(0,0,wi,hi); // Очистка фона
                                gui32.showwindow;
                                DrawTextWindow; // Рисуем текст
                                DrawVScroll(0, text_height, GetPosition, hi-24);  // Отрисовка скроллера
                        end;
                if key = GA_FIRE then Halt; // Выход
               
                Repaint; Delay(5); // Всё таки для Verdanы 7 медленновато скролирует. Надо ещё улучшать алгоритм.
               
        until false;
       
End.

P.S. с самим скролом всё окей, вот текст должен поидии скрыться, не запозая не верхнюю часть окна... Но нифига(

Chehovich-Igor 28.12.2008 01:45

Ответ: Lib_font32: Графические шрифты
 
Почему не отображает украинськую букву " Ї " в Lib_font32.

odd 29.12.2008 01:20

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

Сообщение от Chehovich-Igor (Сообщение 93016)
Почему не отображает украинськую букву " Ї " в Lib_font32.

Блин, надо разобраться. Помню я долго воевал с буквой Ё. С этой, по-ходу, тоже надо повоевать немного.

Цитата:

P.S. с самим скролом всё окей, вот текст должен поидии скрыться, не запозая не верхнюю часть окна... Но нифига(
С этим тоже обещаю разобраться. В чём тут собака порылась. :-D


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

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