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

Discussing libraries simplifying applications development
  • Какая переменная отвечает за позицию начала выделения в edit?
    to infinity and beyond
  • punk_joker wrote:Какая переменная отвечает за позицию начала выделения в edit?
    Скорее всего за это отвечает:

    Code: Select all

    ed_shift_pos    equ [edi+68]            ;положение курсора
    ed_shift_pos_old equ [edi+72]           ;старое положение курсора
    еще нужно предварительно проверять флаги, вероятно:

    Code: Select all

    ed_shift_on=                1000b
    Однако 100% не ручаюсь, так как не я автор кода. Просто мельком посмотрел код.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • What field of the optionbox struct store the status (checked / unchecked) of the checkbox? I think maybe the field flags, but I do not know how to set up initial value, and in my test this value never change, always is 0.
    Sorry for bad English, my native lenguage is spanish.
  • CheckBox:

    Code: Select all

    ch1 check_box2 (5 shl 16)+12,  (5 shl 16)+12, 6, 0xffffd0, 0x800000, 0, ch_text1, ch_flag_en
    ;.........
    
    bt dword[ch1.flags],1
    jnc @f
       ;......... code if checked .........
    @@:
    OptionBox:

    Code: Select all

    struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags
    {        ;структура параметров для чек бокса
    op_flag_en=10b
    .option_group   dd point_gr
    .left           dw left                 ;+0 ;положение по х
    .top            dw top                  ;положение по у
    .ch_text_margin dd op_text_margin       ;расстояние от прямоугольника чек бокса до надписи
    .ch_size        dd op_size              ;размер квадрата чек бокса, для примера 12
    .color          dd color                ;цвет внутри чекбокса
    .border_color   dd border_color         ;цвет рамки
    .text_color     dd text_color           ;цвет надписи
    .text           dd text                 ;адрес в коде программы где расположен текст
    .ch_text_length dd op_text_length       ;длинна строки с символами
    .flags          dd flags+0              ; флаги
    }
    If optionbox is checked then point_gr = & ( selected optionbox struct )
  • Thanks for your reply IgorA , I'll try to test later, when I have free time.
  • rev 5911
    Изменил функции в элементе tree_list на формат вызова __stdcall, т. е. сделал правильный порядок вызова аргументов и возвращаемые значения пишутся в eax а не в стек как было раньше.
    Исправил 5 программ, которые используют этот элемент, осталось еще исправить 2 малоиспользуемые программы (logik elements, kolibri fasm editor).
    Раньше когда создавал элемент, то еще не знал как правильно в __stdcall передавать параметры. Теперь элемент tree_list можно использовать не только в программах на asm, но и на C++.
  • Is somebody still managing this code?
    Does anyone have the ambition to add big font support for editbox?
    And what about UTF-8 support?
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • Вообще, хороший вопрос, как добавить поддержку большого шрифта в editbox? Нужен соответствующий параметр, но куда его воткнуть?
  • Хочу добавить во Frame некоторые новые возможности(стили рамки, заливка всего элемента). Я использую для флагов поле fr_draw_text_flag, оно у меня теперь называется fr_flags.

    Code: Select all

    fr_flags = [x][yyy][z]
    z    -  Caption
    yyy  -  BorderStyle
    x    -  BackStyle
    Но это всё обратно совместимо.

    Только непонятно, что делать с шапкой "Copyright (c) 2013, Marat Zakiyanov...... ", от кода Mario осталось совсем немного. Наверное, просто добавлю ещё сверху текст о том, что я добавил в 2016 году.
    Это вот скриншот тут
    Spoiler:Image
  • Если остался кусок его кода, то копирайт придётся оставить. Если осталось несколько отдельных строк, то можно заменить на стандартную шапку.
  • Добавил в #6586 стили рамки(raised, sunken, etched, ridged) и возможность заливки всего элемента.
    Вот пример использования
    frame_test.7z (1.31 KiB)
    Downloaded 208 times
  • Друзья! У меня простой вопрос: как я вижу, вы передаете в библиотеку напрямую структуру данных, без указания ее длины. Как вы собираетесь структуры расширять и наращивать без потери совместимости?
  • Пора делать версию компонента Edit для большого шрифта.
    Из хаоса в космос
  • Leency wrote:Пора делать версию компонента Edit для большого шрифта.
    Не только editbox, но и остальных.

    Заодно отпишу тут пару багов и пожеланий к апгрейду
    1. Browser не использует select_text_color, хотя на ходовые качества не влияет, но может была какая то задумка ?
    2. Нужна везде поддержка размера шрифта (банально мелко, и худ.дизайн ограничивает), в т.ч
    2.1 Tree_list - залочен на 6x8, при попытке задать высоту иконки 0 (так понимаю связано с расчетом положения текста) крашится
    2.2 t_edit при рисовании большим шрифтом вылезает квадратиками за границу отведенного ему места
    3. Editbox требует чтобы клавиатура была в ASCII mode, а Menu и t_edit в режиме сканкодов
    4. t_edit требует минимум одно слово в таблице расцветки, иначе краш
    5. tree_list иногда при свертывании/развертывании разных узлов отрабатывает щелчок дважды
    6. tree_list при отсутствии иконок рисует квадратик цвета текста, лучше бы совсем не рисовал или уж фоном.
    7. d_button срабатывает по нажатию кнопки, но не отпусканию, возможно не только он
    8. t_edit всегда рисует поля с номерами строк и верхнее, компоненту это не всегда нужно
    9. t_edit не отрабатывает Таб. А как ее отрабатывать? - это с п8 тянет какой то набор настроек редактора

    Ну и еще в целом,
    А. Компоненты выглядят как то "не стильно" (
    Б. Отсутствует защита от некорректных параметров - очень легко "падают"

    Я так понимаю, из живых авторов тут IgorA, да и часть разработчиков уже разбиралась в деталях, может сформировать общие пожелания ?
  • Who is online

    Users browsing this forum: No registered users and 7 guests