Heavyiron
>Обнаружил еще один глюк в editbox (446). Если выделить всю строку мышью справа налево, то она не удаляется del-ом
Обновил компонент, исправлено.
Mario79
>Выделенная мышью строка при повторном щелчке мышью не очищается.
>А зачем удалил Shift+мышь? ИМХО большие возможности это плюс.
Выделять можно мышкой, причем удерживая любую клавишу. Т.е. если раньше было так - пока не будешь держать shift не выделишь, а сейчас это не имеет никакого значения. Обновления доступны на svn и на моем сайте.
Огромная просьба протестировать компонент на рельной машине, под эмулем у меня все ок, но вот на рельной машине я наблюдал некоторые баги, возможно стоит эмуль скорректировать с текущей версией ядра.
Жду ваших замечаний и предложений.
Итак возникли проблемы с интеграцией новой версией едитбокса:
Т.к. в алгоритм были внесены существенные изменения, то они повлекли новые данные, которые необходимо инициализировать в секции кода вашей программы. mouse_flag: dd 0x0 используется для хранения указателя на активный бокс, если там не 0 обрабатывается только бокс , чей указатель находится в этой переменной. structure_of_potock: rb 1024 ;1 кб для получения общей структуры
Т.к. сейчас я получаю гболальные координаты, то эта структура нужна для того что бы можно было узнать координаты окна. можно выделить 100 байт (но в документации для совместимости просят указывать 1 кб.)
<Lrz>
Новый глюк в последней версии - как только щелкаешь мышью по компоненту, он теряет фокус и его уже никак не вернуть. Если действовать исключительно клавиатурой все нормально.
Проверил на новом эмуляторе, такого бага не обнаружил, напиши по подробнее. Ты уже экспериментируешь над KFM ?
В моем примере такую ошибку я не наблюдал. Могу высказать предположение, что потеря фокуса связана с тем, что не правильно (не верно) выдается координаты после отработки функции
;----------------------------------------------------------
;--- получаем координаты окна, заносятся в структуру structure_of_potock
;----------------------------------------------------------
mov eax,9
mov ebx,structure_of_potock
or ecx,-1
int 0x40
Хотя все очень странно.....
[offtop]
ребята, а не проще поставить тот же Mantis или Bugzilla???
А то ветку загадили: "нашел баг" - "пофиксено", "нашел еще" - "пофиксено", "и еще" - "уже исправил"...
А ведь тема называлась "Эффективное программирование в KOLIBRI OS".
Насколько я знаю на ваш сервер можно поставить любую срань...
Ну это так ИМХО и сорри за офттоп [/offtop]
Изначально тема задумывалась, как создание методов, алгоритмов, и рекомендаций по написанию эффективного кода на ассемблере для Колибри. Однако первые мои опыты были не очень удачным примером того как нужно программировать, скорее они были как не нужно программировать. Еще один недостаток, который я заметил у многих программ, это перерисовка всего окна при смене или изменении небольшого объекта в окне. В своих работах, я, по возможности отхожу от этого, конечно неимоверно усложняется код, но зато нет ничего лишнего и ни что не напрягает глаз...
Со времененм, да бы не ткрывать другую ветку, в этой были размещены ссылки на мои работы. Конечно, сейчас, это больше напоминает свалку: "нашел" , "исправил" .....
Если будет другая альтернатива, то я обязательно воспользуюсь ей.
Выскажу предположение:
1 версия. У тебя код мышки обрабатывает основной поток программы т.е. как я понял ты создаешь новый поток и в него выводишь уже сообщение и editbox. А мышку ты обрабатываешь старым потоком. Т.е. у тебя два потока основной и второй где прорисовывается eidtbox. Как следствие тебе нужно сделать так чтобы второй поток обрабатывал код мышки.
2 версия у тебя при вызове 9 функции, которую я привет по адресам dword [structure_of_potock +34] и dword [structure_of_potock +38] расположены координаты основного потока. Если ты вызываешь обработчики мышки в уже сформированном потоке.
Если это так то это уже баг сис функции или фитча.
Если тебе не сложно вышли мне на мыло полностью код KFM, я разберусь вчем дело.
Так .... без пол литра не обойтись... у меня есть отладочный код, с момощью него можно выявить что находится в eax, и по адресам dword [structure_of_potock +34] и dword [structure_of_potock+38].
Но лучше дай мне посмотреть исходный код KFM мое мыло 200_u_200{at}mail.ru