На чем писать редактор схем

Тема в разделе "WASM.ZEN", создана пользователем drmad, 23 июн 2007.

  1. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    100 лет не не сталкивался, но вдруг резко понадобилось. Нужно _быстро_ написать проблемно-ориентированный редактор неких схем.

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

    В принципе, задача несложная и довольно типовая. Лет 10-11 назад я ее даже делал, но это было в ДОСе на языке Modula-2. :) Теперь же не хочу кидаться делать ее с нуля на каком-нибудь ЯВУ, т.к., жалко время и нервы на изобретение велосипеда. Да и делать буду не совсем я. :))) Отсюда вопрос: может, есть подходящие среды программирования? Готовые библиотеки и компоненты? Исходники?

    З.Ы. Я заранее с вами согласен, что "Гугль рулит", но...
     
  2. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    на VBA под Visio?
     
  3. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    drmad
    Странный вопрос на сайте посвящённом асму :))
    Разумеется на асме :)
    Подключаем либу GDI+, чтобы иметь векторную графику в FPU формате ;) всю логику делаем на чистом асме (на нём лучше медитируется), ну а библиотеки для чтения/сохранения файлов в стандартных форматах можно и погуглить ;)
     
  4. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Offtopic:

    Когда-то в начале карьеры я занимался моделированием (или иначе программированием Tools для моделирования). Мне надо было сделать симулятор сетей Петри. Так была мысль сделать похожий редактор. Но не подошло по времени и сети были описаны простым текстовым файлом - жаль...

    Для такого проекта я бы посоветовал C++. Полиморфизм хорошо подходит к задаче. Делаем базовый элемент графа и затем наследуем всё остальное с этого класса. Потом делаем коллекцию указателей на базовые элементы.
     
  5. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    halyavin

    Ну примерно что-то в этом роде, только не Visio и, упаси Боже, не VBA. А аналоги существуют?

    Y_Mur

    Дык, в разделе "Zen" асм - это оффтопик. :)

    AsmGuru62

    Да, 10-11 лет назад у меня была очень похожая задача. Был написан и графический редактор, была и текстовая форма представления схемы с собственным компилятором. Писано было на Модуле-2, были заюзаны ОО-расширения, и реализовано было примерно как у вас описано. Но все это в далеком прошлом, а сейчас хочется поступить более "технологично".

    All

    Еще варьянты?
     
  6. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Да, тоже приходилось делать редактор схем, поступил аналогично. Сам делал с применением MFC (просьба не плеваться, сроки поджимали), SDI/MDI дают неплохую базовую оболочку, вдобавок архитектура Document/View под это дело хорошо подходит, ну и сериализация в свой формат позволяет без лишнего гемора сохранять/загружать схемы. Экспорт в wmf/bmp и поддержку печати также легко прикрутить.
     
  7. rudik

    rudik Руденко Артём

    Публикаций:
    0
    Регистрация:
    6 дек 2006
    Сообщения:
    302
    Адрес:
    г. Харьков
    Я тоже советую использовать С++. На нем реально получится сделать быстрее и качественее.
     
  8. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    drmad
    Меня всегда забавляет обсуждение вопроса "на каком языке писать?", а особенно вопроса "на чём писать, если писать буду не я?" :)))
    [offtop]
    Однажды довелось присутствовать на отчётном совещании (толи за месяц, толи за неделю уже точно не помню) в одной достаточно солидной конторе, которая помимо основной работы имеет вполне приличный штат программистов, создающих программы по теме сновной работы конторы. Так там отчёт представителя программеров свёлся к тому, какую большую работу по выбору языка программирования для последней из поставленных им задач они провели, и в конце концов выбрали Дельфю.
    Я долго ржал, после этого совещания :))
    [/offtop]
    Имхо ответ очевиден - пиши на том языке, на котором легко думатся тому кто собственно будет писать программу ;)
    А поступить более "технологично" имхо можно если найти подходящие либы или опенсорцы. Причём найдя опенсорц на "неподходящем языке" не обязательно весь проект делать на нём же - достаточно скомпилить их в библиотеку.

    roman_pro
    используя GDI+ в проге на асме ;)
     
  9. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Если тебе эти схемы надо рисовать - пиши на Delphi. Под них существует как минимум два компонента, которые можно использовать для рисования блок-схем и не очень навороченных чертежей.
     
  10. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Y_Mur
    Оч. просто. Я в данном случае выступаю постановщиком задачи, причем я не очень высокого мнения о квалификации исполнителя. Если я пущу его в свободное плавание, то, боюсь, он или вообще утонет или доберется до цели очень не скоро. Поэтому я прикидываю возможные варианты решения задачи с тем, чтобы в той или иной мере скорректировать т/з, сделать его реализуемым.

    И еще раз: меня в основном интересуют готовые наработки - библиотеки, компоненты и т.п. Например, нагуглил некий FlexGraphics - кто-нибудь работал? Может быть, существуют еще аналоги?
     
  11. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Любопытная штуковина, поразбираю на досуге ;)
    Правда смущает основанность на обычном GDI (от попыток написания в нём графического движка, у меня остались весьма неприятные впечатления), и то чтофункциональные возможности отсутствующие в GDI+ (готовая сетка, готовый многостраничный документ и т.п.) реализуются достаточно легко, а вот возможности GDI+, отсутствующие в FlexGraphics (произвольный угол поворота объекта, поддержка EMF+) добавлять самому достаточно геморойно ;)
     
  12. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    мне б такого постановщика, который бы за меня язык учил, библиотеки искал, код писал :)))
     
  13. DJK

    DJK Member

    Публикаций:
    0
    Регистрация:
    8 авг 2006
    Сообщения:
    39
    Реализовать данную задачу можно на любом языке с применением GDI и GDI+, данная задача решается либо ООП подходом (Delphi, C++,C# и тд.), либо Асмом но на структурном программировании.