VISG: visual and smart GUI builder

Тема в разделе "WASM.PROJECTS", создана пользователем mrhx, 13 апр 2007.

  1. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Скоро версия 0.8 и в ней я наконец-то обеспечу поддержку ASM.
    Сегодня закончил генераторы исходника для TASM, MASM и lzasm.
     
  2. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    VISG 0.8

    Большое обновление программы VISG: visual and smart GUI builder.
    Более 40 изменений.
    Много изменений, связанных с удобством интерфейса и удобством пользования программой.
    Появилась возможность указывать для контролов символические имена.
    VISG теперь подерживает Free Pascal, C, Delphi, TASM, MASM, lzasm.
    Новый режим работы панели инструментов "Прямое добавление" для еще более быстрой работы.

    http://mrhx.clan.su/load/1

    Добавил поддержку трех ассемблерных диалектов.

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

    CodeTao Евгений

    Публикаций:
    0
    Регистрация:
    31 окт 2006
    Сообщения:
    177
    Адрес:
    штаты
    Скорость разработки проэкта впечетляет! Респект!
     
  4. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    Почему так мало компонентов ? :) Давай уже всех их на тулбар !
     
  5. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    WIN32
    Да, в общем-то, они уже все там :)
    Все встроенные виндовские классы там есть.
    Нет пока только tooltip control.
    А еще нет MDI-Client.
    А так вроде все.
     
  6. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    PS точнее mdi client есть в плагинах.
    просто его поддержки в программе нету, поэтому при создании там ошибка доступа к памяти ))
    так что он просто отключен.
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.090
    mrhx
    Спасибо!!!
     
  8. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Только что выпустил VISG 0.9.

    Более 30 изменений.
    Возможность выбрать шрифт.
    Генерация обработчиков событий.
    Функция копирования чужого интерфейса и др.

    Скрипт генерации для asm был переписан так,
    что теперь для всех трех поддерживаемых компиляторов
    есть только один скрипт, запускаемый с разными опциями.
    Это позволяет гораздо более по-простому добавлять поддержку
    других компиляторов, если кому потребуется.
    То есть типа сам скрипт не меняется почти, меняются только несколько опций его запуска.

    http://mrhx.clan.su/
     
  9. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Версия 0.91 уже доступна.
    - новые более симпатичные иконки;
    - ручное и автоматическое обновления программы;
    - поддержка еще одного языка: Gentee.
     
  10. amdtm

    amdtm Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    196
  11. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Спасибо.
     
  12. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Версия 0.92 визуального дизайнера графического интерфейса VISG.
    Более 20 изменений.
    Из основного:
    + Доработан интерфейс. Стал более удобным и быстрым. Появились "горячие" сочетания клавиш.
    + Генерируемый код Pascal и Basic протестированы на последних версиях компиляторов.
    + Пара новых контролов.
    + Исправлены важные ошибки при открытии проекта, при работе с TabControl.
    + Поддержка контролов с многострочным текстом (на уровне проектов и генерируемого кода).
    Рекомендуется всем обновиться.

    [​IMG]

    [​IMG]

    http://mrhx.clan.su/
     
  13. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Отличная идея. Но - Интерфейс очень неудобен. Может и не прав, но большое количество функций и поддерживаемых языков - результат полного отсутсвия проектирования ( см. Купер "Проектирование интерфейсов").
    Практического смысла 0, кроме демонтрации мастерства авторов программы, каковое имеет место быть конечно, сори.
    Что вы понимаете под Масмом ?
    Что за код выдаётся ??
    Что с ним делать ???
     
  14. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    1) Некоторые вот тоже говорят, что интерфейс неудобен, но никто почему-то сразу не говорит почему. Стоит обосновать, привести примеры. Другими словами: что именно Вы считаете не удобным? Приведите примеры как было бы удобно. Это поможет автору понять что не так.

    2) Количество поддерживаемых языков программирования это не что иное как результат того, что этих самых языков программирования ОЧЕНЬ много. А программа эта призвана уметь создавать исходники для разных языков. Чем больше, чем лучше.

    3) Программа только начинает развиваться серьезно и число функций у нее еще не очень велико. Так что не понимаю причем тут проектирование интерфейсов :dntknw: Интерфейс у программы вполне традиционен и похож чем-то на MS Visual C++ (ну лично я сравниваю с версией 6.0).

    4) Смысл то есть, с точки зрения автора, а именно -- редакторов gui с генерацией кода на функциях самой операционной системы, а не через дополнительные библиотеки, практически нет. Есть один APIx, который поддерживает WinAPI+Pascal и все. Других я найти не смог. Везде используются какие-то библиотеки. А у этого есть свои минусы. Есть только множество редакторов ресурсов.

    А что, для ассемблера есть хорошие визуальные GUI дизайнеры? Причем полностью настраиваемые как вот этот...

    5) Под masm-ом я понимаю то же, что и все остальные. Скачать можно вот тут: http://www.wasm.ru/toollist.php?list=7

    6) "Что за код выдается". Хмм... Обычный код для спроектированного интерфейса. Соберите его и все станет понятно.

    7) Код надо собрать, но можно конечно просто почитать. В начале созданного кода есть комментарии с пометкой "make" - это строки, с помощью которых можно собрать программу.
     
  15. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Почитайте всё таки Купера.....
    Я бы с огромным удовольствием пользовался программой,но мне, конкретно, нужно -
    1.На выходе должен быть нормальный,рабочий код на Масме32
    2.Меня совершенно не интересуют, в процессе работы, ДРУГИЕ языки програмирования
    3.Желательно - автоматически, сражу же - должен компилироваться ехе -ник
    4.Все компоненты - должны находиться перед глазами- очень утомительно открывать всякие меню- потом ещё меню - и читать и читать длинные списки .....
    Меню - это дебильный осадок от работы студентов - практикантов в мелкософте ещё во времена уин2к.....
    5. Мне не нравится,что, когда я пытаюсь закрыть программу- она спрашивает - "Не дурак ли я ?"

    посмотрите www.mbuilder.jino-net.ru

    Компонентов немного, но они и не особенно нужны....работает эта штука распрекрасно.....хотя есть и нарекания...Если бы мог, сделал бы по другому. но , к сожалению .....
     
  16. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    mrhx
    Утечка gdi (bmp) как была, так и осталась, вы в курсе ?
     
  17. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    mrhx
    отличная программа.
    не хватает только исходников созданных окошек для fasm'а

    P.S. и поддержки библиотеки OpenGL, чтобы можно было визуально создавать gl окна
     
  18. mrhx

    mrhx New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2006
    Сообщения:
    63
    Veter

    1) код на самом деле полносью рабочий, если не считать "бага" с пустой строкой.
    masm, к сожалению, считает ошибкой пустую строку ("").
    Это я пока не исправил. Но это возникает ТОЛЬКО при использовании многострочных надписей в элементах управления.

    4) так есть же "окно инструментов" - вон, на скриншоте оно видно (включается в меню ВИД, но по умолчанию включено) - там все поддерживаемые контролы есть и окна.

    5) Это пока необходимость. То же самое при удалении окон. Но позже, с введением функций Redo/Undo это будет исправлено.

    mbuilder я посмотрю, спасибо.

    kero

    нет, не в курсе, но не исключаю, что гдето не исвобождаю память.
    спасибо, постараюсь пофиксить.

    t00x

    fasm будет чуть позже.
    я с ним неособо знаком покачто.
     
  19. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    ..а генерация .res файлов планируется?
     
  20. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Пользоваться не очень удобно. Это общее впечатление. Конкретно раздражает размер кнопок с изображениями контролов на тулбоксе.
    Либо надо наизусть знать, где какая кнопка, либо надо ждать тултипа с подсказкой.
    О генерации кода: использовал прогу для генерации кода создания таб-контрола, не понравился один момент:
    Контролам, прикрепленным к той или иной вкладке таба, перезаписывается GWL_USERDATA. Имхо, это не хорошо: отбираешь у пользователя возможность распоряжаться этим параметром.
    Кроме того, в wndproc приходится крутить непроизводительные циклы по перебору всех child'ов и извлечению GWL_USERDATA у каждого из них с последующим сравнением с ID вкладки таба.

    На мой взгляд, правильнее использовать для идентификации контролов, прикрепленных к вкладке таба, параметр lParam структуры TCITEM, где можно хранить указатель на массив hWnd'ов (или hWnd'ей :) всех прикрепленных к вкладке контролов.
    Освобождается GWL_USERDATA, и заодно избавляемся от циклов поиска и извлечения GWL_USERDATA для всех контролов окна.

    Т.е. примерно так:

    Код (Text):
    1. TCITEM  tci;
    2. HWND    *tabControls = new HWND[4];
    3.  
    4. HWND hButton = CreateWindowEx(...);
    5. HWND hStatic = CreateWindowEx(...);
    6. HWND hListBox = CreateWindowEx(...);
    7.  
    8. tabControls[0] = hButton;
    9. tabControls[1] = hStatic;
    10. tabControls[2] = hListBox;
    11. tabControls[3] = 0;
    12.  
    13. tci.mask = TCIF_TEXT | TCIF_IMAGE | TCIF_LPARAM;
    14. tci.lParam = (LPARAM) tabControls;
    15. tci.iImage = -1;
    16. tci.pszText = "Вкладка 1";
    17. TabCtrl_InsertItem(hTab, 0, &tсi);
    18.  
    19.  
    20. LRESULT CALLBACK .....
    21.     TCITEM  tci;
    22.     HWND    *tabControls;
    23.     int     cmdShow;
    24.  
    25.     case WM_NOTIFY:
    26.         if ( ((LPNMHDR)lParam)->hwndFrom == hTab )
    27.             UINT code = ((LPNMHDR)lParam)->code;
    28.             if ( code == TCN_SELCHANGE || code == TCN_SELCHANGING ){
    29.                 tci.mask = TCIF_PARAM;
    30.                 TabCtrl_GetItem(hTab, TabCtrl_GetCurSel(hTab), &tci);
    31.                 cmdShow = ((code == TCN_SELCHANGE) ? SW_SHOW : SW_HIDE);    
    32.                 tabControls = (HWND*) tci.lParam;
    33.                 while ( *tabControls ){
    34.                     ShowWindow( *tabControls, cmdShow );
    35.                     tabControls++;
    36.                 }
    37.                 if ( code == TCN_SELCHANGING ) return FALSE;
    38.             }