box_lib.obj - библиотека gui компонентов

Discussing libraries simplifying applications development
  • SVN r. 3358 - EditBox учитывает нажатые клавиши Win (и перестает принимать символы), это правильно работает лишь для ядра r.3356 или последующих. Поскольку используется флаги индикации Win клавиш, получаемых ф.66.3
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Leency wrote:Баг со скроллом. Наглядно. Без СМС. Без регистрации. Звук в видео ЕСТЬ.

    https://docs.google.com/file/d/0B7UOAbB ... edit?pli=1
    Проблема все-же не в скроллбаре, а в невалидном для RTFREAD файле. На видео достаточно отчетливо видна куча кракозябр, вероятно это табличное или еще какое-то форматирование. Сам открываемый файл на рассмотрение не предоставлен. RTFREAD поддерживает собственно формат RTF не полностью. Когда открывается обычный - даже очень большой файл (к примеру у меня есть мануал Fasm на русском языке в формате RTF), то такого эффекта не наблюдается. Показанный пример считаю бездоказательным в отношении предполагаемого бага в scrollbar.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Для приложения Desktop я "изобрел" элемент Frame (рамка).
    viewtopic.php?f=42&t=1509&start=17
    Имеет ли смысл сделать такой элемент в библиотеку? Будет ли востребовано?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Судя по весьма неплохому результату, элемент ободок в библиотеке не помешает.
    Из хаоса в космос
  • Leency wrote:Судя по весьма неплохому результату, элемент ободок в библиотеке не помешает.
    Требуется дизайнерский пиксельхантинг, может там полоски местами переставить или еще чего? А то у нас хардкордных программистов квадратно-гнездовой прямоугольный способ построения плоскостей элементов.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • И так нормально.
    Из хаоса в космос
  • Идея. Добавить в библиотеку ProgressBar.

    Мой вариант:
    Spoiler:Image
    pb_lib.obj должен быть в "/sys/lib"
    Downloaded 363 times
    pb.asm (4.05 KiB)
    Downloaded 288 times
    pb_test.asm (4.5 KiB)
    Downloaded 278 times
    Почему-то, когда окно активное, скриншотер его сворачивает, и скриншот не получается.
  • 0CodErr
    У тебя есть аккаунт SVN? Если есть прикрути, если нет аккаунта, то нужно попросить у админов.
    Я сам давно хотел выдрать код из KFM и прикрутить в качестве компонента, но руки не дошли.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • 0CodErr
    Выглядит хорошо внешне, в API пока не смотрел. Мне пришлось изобрести свой прогрессбар - можно увидеть в Лизе и ещё двум программам он уже нужен, а включать код прогрессбара в каждую - дополнительные расходы. Так что я за добавление.
    Last edited by Leency on Fri Apr 12, 2013 2:29 pm, edited 2 times in total.
    Из хаоса в космос
  • Leency wrote:а включать код скроллбара в каждую программу
    прогрессбара, не?
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Mario_r4 wrote:
    Leency wrote:а включать код скроллбара в каждую программу
    прогрессбара, не?
    Да, прогрессбара. Только проснулся.
    Из хаоса в космос
  • SVN r. 3470-3471 - компонент Frame (Рамка).

    Как пример использования - программа Desktop
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Не могу нормально прикрутить прогрессбар к Лизе.

    Code: Select all

    struct progressbar
    {
    	dword
    	pb_value,
    	pb_left,
    	pb_top,
    	pb_width,
    	pb_height,
    	pb_style,
    	pb_min,
    	pb_max,
    	pb_back_color,
    	pb_progress_color,
    	pb_frame_color;
    };
    
    progressbar progress_bar = {0,0,0,0,0,0,0,100,0xFFFfff,0x54B1D6,0};
    void DrawProgressBar(dword st_x, st_y, st_w, st_h, progress_percent, status_text)
    {
    	progress_bar.pb_value = progress_percent;
    	progress_bar.pb_left = st_x;
    	progress_bar.pb_top = st_y;
    	progress_bar.pb_width = st_w;
    	progress_bar.pb_height = st_h;
    	progress_bar.pb_frame_color = sc.work_graph;
    	//progressbar_draw stdcall (#progress_bar);
    	progressbar_progress stdcall (#progress_bar);
    }
    Если раскомиттить строку //progressbar_draw stdcall (#progress_bar);, то программа начинает падать вообще в другом месте. Может я делаю что не так? Когда нужно использовать progressbar_draw и когда progressbar_progress?
    В аттаче две версии. Разница в одной лишь этой строке.
    Attachments
    liza.zip (22.68 KiB)
    Downloaded 245 times
    Из хаоса в космос
  • progressbar_draw — перерисовывает полностью весь компонент.
    progressbar_progress — увеличивает value и рисует следующую часть.

    progressbar отображает, какое количество действий(работы) уже выполнено.
    progressbar_progress нужно вызывать, когда произошло очередное действие.

    Сначала задать min и max — минимальное(стартовое) и максимальное(конечное) количество действий. А потом начать выполнять сами действия.

    Code: Select all

    While WorkNotComplete
      NextWork
      If isComplete(CurrentWork) then progressbar_progress
    EndWhile
    
    progressbar_draw предполагается вызывать, когда необходимо перерисовать весь компонент, например, при перерисовке всего окна.
  • Who is online

    Users browsing this forum: No registered users and 30 guests