100 лет не не сталкивался, но вдруг резко понадобилось. Нужно _быстро_ написать проблемно-ориентированный редактор неких схем. Т.е., это должно быть отдельное приложение для Вин. Должна быть возможность создания/сохранения/редактирования проектов. Сама схема - некий граф в окне, который нужно составлять из отдельных узлов, выбирая их из библиотеки, и соединять линиями. Есть определенные правила соединения, т.е., например, красные узлы нельзя соединять с зелеными, а только со своим цветом или с синими. Или квадратики только с кружочками, но не с треугольничками. У каждого узла есть некий набор атрибутов, которые могут редактироваться прямо на схеме (например, в форме, вызываемой кликом правого мыша на узле) и сохраняются вместе с ним в проекте. Возможна некоторая примитивная динамика (т.е. моргание узлов, анимация прохождения фишек по связям и т.п.). Файловый проект должен иметь известный формат, доступный для других приложений. И так далее. Я это все так подробно перечислил, чтобы были примерно понятно, о чем речь. В принципе, задача несложная и довольно типовая. Лет 10-11 назад я ее даже делал, но это было в ДОСе на языке Modula-2. Теперь же не хочу кидаться делать ее с нуля на каком-нибудь ЯВУ, т.к., жалко время и нервы на изобретение велосипеда. Да и делать буду не совсем я. )) Отсюда вопрос: может, есть подходящие среды программирования? Готовые библиотеки и компоненты? Исходники? З.Ы. Я заранее с вами согласен, что "Гугль рулит", но...
drmad Странный вопрос на сайте посвящённом асму ) Разумеется на асме Подключаем либу GDI+, чтобы иметь векторную графику в FPU формате всю логику делаем на чистом асме (на нём лучше медитируется), ну а библиотеки для чтения/сохранения файлов в стандартных форматах можно и погуглить
Offtopic: Когда-то в начале карьеры я занимался моделированием (или иначе программированием Tools для моделирования). Мне надо было сделать симулятор сетей Петри. Так была мысль сделать похожий редактор. Но не подошло по времени и сети были описаны простым текстовым файлом - жаль... Для такого проекта я бы посоветовал C++. Полиморфизм хорошо подходит к задаче. Делаем базовый элемент графа и затем наследуем всё остальное с этого класса. Потом делаем коллекцию указателей на базовые элементы.
halyavin Ну примерно что-то в этом роде, только не Visio и, упаси Боже, не VBA. А аналоги существуют? Y_Mur Дык, в разделе "Zen" асм - это оффтопик. AsmGuru62 Да, 10-11 лет назад у меня была очень похожая задача. Был написан и графический редактор, была и текстовая форма представления схемы с собственным компилятором. Писано было на Модуле-2, были заюзаны ОО-расширения, и реализовано было примерно как у вас описано. Но все это в далеком прошлом, а сейчас хочется поступить более "технологично". All Еще варьянты?
Да, тоже приходилось делать редактор схем, поступил аналогично. Сам делал с применением MFC (просьба не плеваться, сроки поджимали), SDI/MDI дают неплохую базовую оболочку, вдобавок архитектура Document/View под это дело хорошо подходит, ну и сериализация в свой формат позволяет без лишнего гемора сохранять/загружать схемы. Экспорт в wmf/bmp и поддержку печати также легко прикрутить.
drmad Меня всегда забавляет обсуждение вопроса "на каком языке писать?", а особенно вопроса "на чём писать, если писать буду не я?" )) [offtop] Однажды довелось присутствовать на отчётном совещании (толи за месяц, толи за неделю уже точно не помню) в одной достаточно солидной конторе, которая помимо основной работы имеет вполне приличный штат программистов, создающих программы по теме сновной работы конторы. Так там отчёт представителя программеров свёлся к тому, какую большую работу по выбору языка программирования для последней из поставленных им задач они провели, и в конце концов выбрали Дельфю. Я долго ржал, после этого совещания ) [/offtop] Имхо ответ очевиден - пиши на том языке, на котором легко думатся тому кто собственно будет писать программу А поступить более "технологично" имхо можно если найти подходящие либы или опенсорцы. Причём найдя опенсорц на "неподходящем языке" не обязательно весь проект делать на нём же - достаточно скомпилить их в библиотеку. roman_pro используя GDI+ в проге на асме
Если тебе эти схемы надо рисовать - пиши на Delphi. Под них существует как минимум два компонента, которые можно использовать для рисования блок-схем и не очень навороченных чертежей.
Y_Mur Оч. просто. Я в данном случае выступаю постановщиком задачи, причем я не очень высокого мнения о квалификации исполнителя. Если я пущу его в свободное плавание, то, боюсь, он или вообще утонет или доберется до цели очень не скоро. Поэтому я прикидываю возможные варианты решения задачи с тем, чтобы в той или иной мере скорректировать т/з, сделать его реализуемым. И еще раз: меня в основном интересуют готовые наработки - библиотеки, компоненты и т.п. Например, нагуглил некий FlexGraphics - кто-нибудь работал? Может быть, существуют еще аналоги?
Любопытная штуковина, поразбираю на досуге Правда смущает основанность на обычном GDI (от попыток написания в нём графического движка, у меня остались весьма неприятные впечатления), и то чтофункциональные возможности отсутствующие в GDI+ (готовая сетка, готовый многостраничный документ и т.п.) реализуются достаточно легко, а вот возможности GDI+, отсутствующие в FlexGraphics (произвольный угол поворота объекта, поддержка EMF+) добавлять самому достаточно геморойно
Реализовать данную задачу можно на любом языке с применением GDI и GDI+, данная задача решается либо ООП подходом (Delphi, C++,C# и тд.), либо Асмом но на структурном программировании.