Визуальный редактор связей на Delphi
Разработка визульного редактора для системы обработки сигналов.
Система должна состоять из редактора(с сохранинием и загрузкой проекта) и подгружаемых
модулей(плагинов).
Модули должны быть с единым интерфейсом и динамически, по необходимости, подгружаться
по средствам DLL.
Модули должны быть разбиты по категориям(физически по папкам с названиями категорий).
Редактирование проекта состоит в выборе модуля из какой либо категории и перетаскивании
его на рабочую область с помощью Drag & Drop в произвольное место. Удаление модуля -
перетаскиванием в корзину. Должна быть возможность передвигать модули
мышкой в пределах рабочей области.
Каждый модуль может иметь неограниченное количество входов и выходов. Также может иметь
только входы или только выходы.
Должна быть возможность создавать связи между модулями от выхода одного к входу
другого модуля путем нажатия мышки на выходе, ведения до входа другого модуля и
отпускания мышки. Также необходимо удаление связей перетаскиванием их в корзину.
При двойном нажатии на модуль, должно выводиться диалоговое окно, "живущее" внутри
DLL-ки модуля с его настройками, в котором, например, можно динамически изменить
количество входов или выходов модуля. Настройки всех модулей проекта должны сохраняться
в файле проекта также как и расположения модулей в рабочей области и связи между модулями.
Внутри редактора должны быть доступны операции UNDO/REDO
Пример очень хорошей реализации подобной задачи можно посмотреть на скриншоте редактора из
KXproject драйверов для звуковых карт Creative, ну и в самих драйверах.
В общем оcновная задача - редактор. Взаимодействие модулей и т.д. задача второстепенная и пока не стоит.
Возможно дальнейшее постоянное развитие проекта за дополнительную плату.