libGUI

Discussing libraries simplifying applications development
  • andrew_programmer
    Наплюй, у него мания такая - цепляться за мелкие неточности...
  • Мания.. Я просто радею за проект :), хочу чтоб он становился лучше...
    Посмотрят иноязычные коллеги на эти сырцы и что они подумают?
    andrew_programmer
    не знал что надо писать Victore
    Я подумаю над предложением. К сожалению имею совсем мало свободного времени (учеба на дневном и работа забирают почти всё время)
  • Встроил CheckBox и EditBox.
    CheckBox нормально работает, а вот EditBox содержит один баг.

    http://www.menuetosgame.narod.ru/programs/libGUI_bug.7z

    Если в EditBox-е нажать клавишу Backspace после удаления последнего символа, то происходит вылетание EditBox-а , а значит и всей программы в целом.Я не могу понять с чем это связано.Код EditBox-а представляет из себя лапшу из переходов в которой полностью может разобраться только автор.

    <Lrz>, код с EditBox-ом начинается со строки номер 5581.Попробуй отыскать баг, а то я на это дело 2 часа убил, но так и не смог его найти.
  • andrew_programmer
    Там не то что лапша, там я даже не знаю что. Очень много переходов, я в этим согласен, я неоднократно менял код, периодически, писал даже все с начала. Я сегодня вечером постараюсь найти ошибку. А разобраться в переходах можно будет, если я напишу доку и сделаю блок схему по которой работает алгоритм.
  • а лучше стараться писать так, чтобы все было понятно и без доков ;)
  • Heavyiron
    Там не так сложно, нужно просто понять принцип. Глобальное усложнение алгоритма дало внедрение выделение текста.
  • <Lrz>
    /OFFTOP
    Еще в школе мне было проще написать сразу программу, чем рисовать алгоритм и по нему сочинять код.
    Вообще алгоритмы помогают, но уж больно муторно их рисовать и проще бывает написать код.
    /OFFTOP
  • Может и проще сначала код - а потом алгоритм, но потом в этом коде черт голову сломит ;)
    Last edited by Heavyiron on Mon Apr 02, 2007 5:49 pm, edited 1 time in total.
  • [offtop]Лично я всегда пишу код так, чтобы он работал, а не так, чтобы он был читабельным. Другой вопрос, что я при желании могу прочитать и понять любой код...[/offtop]
  • [offtop]А ещё в IDA есть клавиши F12 и Ctrl+F12, помогает разобратся с алгоритмом )[/offtop]
  • Разобраться, конечно, можно с любым кодом, вопрос в том, сколько на это времени и желания надо. И если читабельность не влияет на работоспособность, то лишней она не будет. А алгоритм помогает получить более структурированный (а следовательно - понятный) код. И вообще это обсуждение нужно вести скорее в ветке "Эффективное программирование в KOLIBRI OS" ;)
  • Heavyiron
    Иногда читабельность идёт вразрез с эффективностью. Простой пример: вызов функций через макрос invoke читабелен, но исключает возможность заблаговременно заPUSHить параметры в стек.
  • Code: Select all

    macro invoke proc,[arg] 		; indirectly call STDCALL procedure
     { common
        if ~ arg eq
       reverse
         pushd arg
       common
        end if
        call [proc] }
    Параметры помещаются в стек в обратном порядке, так что

    Code: Select all

         invoke a,[b],123,c
    эквивалентен, например,

    Code: Select all

         push c
         push 123
         invoke a,[b]
  • Я несколько о другой читабельности... Понятно, что даже любая оптимизация в той или иной степени снижает понятность кода, но тем не менее оптимизация нужна. А я за то, чтобы сознательно не "шифровать" код, если это ни чем не оправдано... Логичные названия процедур и переменных, структурированный код, комментарии, шапка вверху с кратким описанием программы... А у нас встречается и такое, что, например, в vrr_m написано, что это тестовая программа - озвучивает код нажатой клавиши. :) Помню когда-то во времена знакомства с колибри глянул в ее исходники и удалил, потом долго не мог понять, почему у меня 60 Гц...
  • Who is online

    Users browsing this forum: No registered users and 13 guests