редактор для фасма

Тема в разделе "WASM.PROJECTS", создана пользователем _basmp_, 10 июл 2005.

  1. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    basmp_

    >А про глюки хотелось бы поподробнее - что не так, в каких случаях и возможно как видится иначе.

    Ну, вот несколько (на XP-pro-sp2).

    При запуске, пока не кликнешь мышкой по столу, - висит курсор "песочные часы"
    (который не сразу сменяется и после клика).
    А после клика - окно "Basmp Main Window" часто оказывается за экраном.
    Видимо, задумано, чтобы место клика квлияло на положение окон, но...

    Нагружает переменчивость оконных псевдозаголовков при кликах по ним...

    Чрезмерная чувствительность гуя к движению мышки.
    Догадываюсь, что для опытной руки это ускоряет работу с гуем,
    но когда выскакивающие окошки то и дело перекрывают путь мышке...

    >Не совсем понятно про автора и юзера.

    Автор получает удовольствие от создания оригинального гуя с нуля,
    юзеру же предлагается приноравливаться, тратить драгоценное время на "борьбу" с этим гуем...

    А не обсудить ли вам этот гуй на RSDN-овском форуме
    Пользовательский интерфейс: проектирование, usability ?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    При выпадании виндовой ошибки не перерисовывается окно, и, перетаскивая окно ошибки, можно затереть всё главное окно.
    http://gr8.cih.ms/uploads/basmp.png - скриншот

    К тому же оно еще и подвисло у меня.
     
  3. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    курсоры не устанавливаются нигде и никак, пока..

    не задумано - ошибка однозначно, и старая.

    при клике на шапке окно отрывается от меню - то есть не убирается при потере фокуса, соответственно появляются кнопки закрытия и сворачивания, а двойной щелчок на шапке развернет окно во весь экран (только resizeable диалоги). Для этого шапки и нужны вобщем-то. А, и таскать за них можно.

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

    удовольствия в последние полтора года поубавилось, зато работать с ним люблю все утили для себя в нем пишу, за одно и глюки нахожу - диалоги сами закрываются, менюхи можно оторвать и использовать как тулбар, изменить/добавить/убрать какой контрол можно тут же по ходу, проверить что через командную строку в терминале безо всяких кнопочек менюшек, а какие регулярные экспресии (красиво звучит) не хуже перла.
    Стандартный интерфейс счас особенно меня задалбывает восемнадцатью заходами подряд в одно и тоже меню чтоб поменять шрифт/стиль итд.

    в чем состоит приноравливание борьба, поподробнее если можно. Ошибки есть, они не в счет - исправлены будут.

    возможно будет такая возможность когда нибудь. туда без c# можна?

    попробовал - есть такая фигня. А как узнать, что такое окно выскочило?
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ты что-то не то нахимичил с обработкой сообщений, конкретно WM_PAINT, раз у тебя перерисовка такая кривая (если вообще есть)
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    рисуется по WM_ERASEBKGND, по WM_PAINT только BeginPaint и EndPaint. Разница в регионе доступном для перерисовки. Счас посмотрю..
     
  6. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    посмотрел.
    Пока висит такое окошко (http://gr8.cih.ms/uploads/basmp.png) MS-овский spy++ никаких сообщений не показывает. После закрытия все нормально.
    как быть?
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    _basmp_
    Догадываюсь, что у тебя прога однопоточная и обработка любых сообщений блокирует получение следующих. Получать сообщения стоит в одном потоке, а обрабатывать в другом. Тогда, пока ты расправляешься с открытием файла, винда тебе будет посылать WM_PAINT для перерисовки главного окна, если что не так.
     
  8. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    у меня прога падает при появлении окошка... win xp sp2
     
  9. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    _basmp_
    Тогда уж и ОС надо было писать с нуля, а не оставаться в виндах :)
    Зуб даю: непонятки вашего гуя - это неразобранные непонятки стандартного, не сочтите за менторство...

    Самому внмкать подробнее пока возможности нет, но приаттачиваю два снапшота дерева окон (XP-pro-sp2):
    1) сразу после запуска basmp кликом по его иконке в его папке, и 2) сразу после следующего клика по столу.
    Четко видно, где ломается процесс создания окна basmp.
    (Использовался WinTreeSnap).
     
  10. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Вы наверно не поняли. Писалось всё это по необходимости. Требовалось средство быстрого написания утилит с графическим интерфейсом способного влезть на дискетку со всеми настройками - этакий микро perl с tk на пол дискетки, но посимпатичней. И под Винду. Не хотят заказчики на Линукс.
    Всё что относится к той части не глюкует уже давно, кроме терминала (который починил вчера).
    Потом понадобился редактор для сложной среды (много языков, сложные связи, постоянно возникающие непредвиденные срочные необходимости), готового бесплатного не нашел, с платными нуу купить нет денег, а по другому не стоит привыкать, наверное.. Да и не тянут они по моим запросам и большие. К заказчику ковырять его мусор не возьмеш.
    Писать решил поверх старого проекта поскольку он особенно хорошо подходит для последнего запроса (постоянно возникающие непредвиденные срочные необходимости).
    Тут в форуме (или на fasm-е?) где-то встречал обсуждение редактров для сложных проектов, вот и решил что это будет интересно не только мне.

    Кстати самого гуя без окна редактирования, визуального редактора (всего что связано с <control-кликом> и savestate) и lua, а и без новых добавок (графика, базы данных итд - без них не получается) в скомпилированом виде килобайт 25-30. В голом виде он не глючит (сейчас оторвать уже не получится).
    Стандартный гуй используется в минимальном объеме. Так быстрее работает, надёжнее и проще отлаживать (кстати многие стандартные функции изменяют несколько регистров, что меня в данном случае не устраивало). Так-что стадартный тут почти ни причём.
    А ошибки, в основном, отлавливаются на интерфейсах между библиотеками и модулями и в новых добавках.

    а нельзя-ли доку какую по.., ага понял. Ошибка уже починена (вроде).

    Интересная утиль. Если интересует критика - то не хватает (лично мне) фильтра по полю (скажем имени процесса) и включения в отчет только интересующих полей и завесить в трей и получать отчеты кликом по иконке, а то от переключения окон и больших таблиц/текстов уже в глазах свербит.
    И называть стоит не по тикам, а по дате и времени до миллисекунд (точнее наверно не стоит).

    Пример:
    WinTreeSnap.exe -filter=(exename=basmp.exe) -zPopwhXYxy(...) <-флаги означающие выводимые поля ./bWTSreports <-директория вывода
    и зависло в трее..


    кстати тут где-то у меня валялся конвертер с С-шных .h-ей в masm-овые .inc-и. Писалось когда-то на перле, однако, переписать на lua не сложно. Кроме того автомат там не всегда проходит (макросы), так что и гуй пригодится. Если интересно могу переписать.
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    а если сохранять их в стеке?
    хз-хз....
    +1 ...
     
  12. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    каждый раз все регисты?
    Код (Text):
    1.   pusha
    2.    ...
    3.   call ...
    4.   popa
    5.  
    6.   mov ...
    7.  
    8.   pusha
    9.    ...
    10.   call ..
    11.   popa
    12.    ...
    так что-ли? Я ведь не знаю наверняка, какая функция при каких параметрах что поменяет, а долго и подробно исследовать нет времени. Да и тормозит это - обертывать ведь приходится каждую виндовую функцию.
    Вообще-то вначале так и было - замучился с отладкой.
    Затем заменил большинство на свои, а оставшиеся заврапил. Болезнь прошла.

    большинство обработки происходит в регистрах, а проц минимум в 7 раз быстрее памяти, особенно если данные раскиданы (как у меня). Случаи рассматриваются неуниверсальные (у MS много не относящихся к делу проверок), многие промежуточные результаты сохраняются (у MS - расчитываются заново). итд. Получается быстрее.

    как понять?
     
  13. cpp_and_wasm

    cpp_and_wasm Владимир

    Публикаций:
    0
    Регистрация:
    27 июл 2006
    Сообщения:
    128
    _basmp_ а нельзя выпустить нормальную рабочую не виснущую версию, а потом уже выкладывать её на общак и обсуждать? Также не помешал бы хелп с описаниями и примерами как и что там делается...
     
  14. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    _basmp_

    Сильнейшая утечка GDI (например, при драгдропе окна - BRUSH, DC).

    ---
    По WinTreeSnap.
    1) От фильтров сознательно отказался (сначала были, ком.строка): чтобы сохранять полное дерево окон, фильтровать же - потом, в редакторе (типа UltraEdit).
    2) Утилитка идейно безоконна, чтобы не ломать дерево окон. И по той же причине - запускаться должна не кликом по иконке, а комбинацией клавиш (у меня - Ctrl+Shift+W).
    3) Текущий формат имени удобен, когда нужно брать несколько снапшотов подряд (а дата и так в файле).
    4) Однако при желании все это легко переделать, исходник приложен :)
     
  15. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    затем и обсуждать, чтоб не висла.
    а где вы невиснущие проги видели?

    хелпник есть, .\hlp\1.hlp называется и кнопочка из главного меню есть <Help>.
    Описание, примеры, книжки, сорцы,... Luа-5.0 на www.lua.org. Очень хорошие, на английком языке.
    Примеры баспа (расширение Luа) - все файлы *.b.
    Экспериментировать - в терминале хорошо. для этого он и есть.
    Синтаксис для файла и для терминала - одинаковый.

    там было пару неясных моментов в доке.. были такие подозрения. а как отловить это?
    драгдроп - это про контрол-клик? наколько помню, там нигде getdc co товарищи нету. что за тулза ловила это?

    ну вот еще одна утиль, гуёвая и для фильтрации. со своими заморочками. сильно мешают особенности эти в работе. были-бы они в юниковом стиле - очень там командная строка мне нравится.

    с комбинациями напряг - у меня пол клавы не пашет, оба конрола к примеру.

    кому как. не наглядно.

    наверно так и будет.

    порекомендуйте чем утечки искать. и ГДИ и памяти. в базах данных большие потери.
    что-нибудь маленькое, а то у меня инета почти нет.
     
  16. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Преальфа-4.
    - гораздо удобнее стала графика, + новые функции.
    - исправлен ряд ошибок
    - наконец-то в редакторе стало можно работать - часть текста в конце писалась в нем
    - начал писать туториал см [Main menu] -> [Tutorial]
    - добавил доку по lua (на английском)
    - появился встроеный ассемблер (слегка переписаный fasm-1.67.21)
    - другие изменения (см. changes.txt в архиве)

    очень интересуют ваши замечания - свежие мысли помогают в работе
    особенно интересуют замечания/предложения по встроенному asm-у.

    www.basmp.narod.ru
     
  17. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    У тебя нет флэшки что ли? Я сейчас пользуюсь eclipse в основном (300-500Mb на винте) - на гиговую флэшку вместе с проектом влезать должен.
     
  18. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Не совсем понял про что тут. Осмелюсь предположить, что про носимое средство разработки. Отвечаю. На большинстве клиентстких машин расчитывать приходится только на флоп (я живу не в Москве). И стоит там не Виндовс ХР (для флэшки драйверок нужен будет). Свободных 500Мб на винте у них нет - все забито игрушками и фильмами, трогать которых категорически воспрещено, вплоть до потери клиента. О требованиях к ресурсам и быстродействии eclipse я вообще молчу - одна такая разработка и с тобой говорить никто больше не станет. Капризный клиент у нас.

    Однако, сравнение с eclipse льстит. Весьма даже. Спасибо вам.

    С уважением
    www.basmp.narod.ru
     
  19. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Некоторые багфиксы и дополнения
    подробности в файле changes.txt в архиве исправлений (нижнем)

    распаковывать поверх основного архива (верхнего)

    прошу высказываться

    www.basmp.narod.ru
     
  20. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Вопрос:
    Как объявить 10-и байтовое дробное число в C (long double объявляет 8-и байтовое (64 бита))?