Здравствуйте, Strannik, Вы писали:
S>Каждая форма храниться по DLL'кам.
S>Есть одно общее окно в которое эти формы будут подгружаться. Соответственно нужно реализовать и взаимодействие этих форм между собой в пределах одного окна.
По уму надо делать так:
Основное окно является диспетчером и знает обо всех своих дочерних "формах".
Каждая "форма" знает о диспетчере и больше не о ком.
При необходимости у "формы" сделать запрос на какую либо информацию, она делает этот запрос диспетчеру.
Диспетчер должен знать кому переадресовать любой запрос от любой "формы" (запрос может быть обработан смим диспетчером, либо передан другой форме или целой группе форм)
При таком подходе твои формы будт независимыми и взаимозаменяемыми. Т.е. изменеие формы не влияет на остальные (кроме может быть диспетчера)
Диспетчер может менять логику обработки сообщений от форм, не изменяя сами формы.
<------>"Форма ввода"
"Диспетчер"<------>"Форма график"
<------>"Форма диаграмма"
Пример 1:
1."Форма ввода" посылает сообщение "Диспетчеру" <Пользователь ввел новое значение X в полеY>
2."Диспетчер" посылает сообщение "Форме график" <Перересуйся в точке {x,y}>
3."Диспетчер" посылает сообщение "Форме диаграмма" <Перересуй стобец Y со значением X>
Пример 2:
1."Форма диаграмма" посылает сообщение "Диспетчеру" <Пользователь изменил столбец Y на значение X>
2."Диспетчер" посылает сообщение "Форме график" <Перересуйся в точке {x,y}>
3."Диспетчер" посылает сообщение "Форме ввода" <Обнови поле Y со значением X>
и т.д. Причем в итоге для формы "Форме график" не важно существует ли форма "Форме ввода", или нет — все рулит "Диспетчер"
Подробней — ищи инфу о паттерне "Наблюдатель".