Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.02;
Скачать: CL | DM;

Вниз

Хитро завернутый проект с кучей dll-ок   Найти похожие ветки 

 
pum5a   (2003-09-19 23:35) [0]

Здорова!
Проблемы нет, есть желание получить наставление.
Дело такое: хочу создать приложение с одной главной формой, из неё будут вызываться модули. Модули лежат в dll-ках и подключаются как плугины (их будет 20-50). В начале работы мы их находим и инициализируем (они создаются на базе расширенной формы, которая хранится в bpl-ке, которая прописана у них у всех в runtime packages). после инициализации модули передают в основную форму свою инфу (сколько там подмодулей, как они называются, иконки и т.п.), на ней создаются кнопочки (типа ide-шной Component Pallete). Да, а все модули (т.е. dll-ки) юзают статичный dll который отвечает за базы данных (там DAO какое-нть) чтоб работал только один экземпляр. Т.е. одно приложение юзает несколько длл-ок, а они все еще одну. Во всех модулях есть процедура запуска RunMe(SubModule) и RefreshMe для всех подмодулей (вызывается при смене даты или типа того). И еще будет куча TStringList-ов, в которых всякая одинаковая фигня для модулей лежит.
Вопросы такие:
1. Как из модуля передать информацию наверх, в основную форму (например запрос на смену даты). Я думаю послать broadcast message, а в основной форме поймать его и по типу мессаги вызвать нужную функцию в нужном модуле, получить результат и использовать его. Или просто передать все параметрами (если немного будет)
2. Как хранить листы с фигней (например с заказчиками) доступными для всех длл-ок в одном экземпляре (хотя конечно можно и в каждом создать по листу, но это - лишняя память и лишние обращения к БД)
3. Что в схеме моего проекта можно улучшить.


 
Тих   (2003-09-19 23:48) [1]

И в самом деле фигня. Но мысль верная.
Используй, пожалуйста, чего-нибудь стандартное, например COM и ADO. Будут тебе и модули в виде ActiveX, и события для уведомления компонентов, и единичные экземпляры в виде синглтонов, и экономия ресурсов в виде Connection Pooling-а, и классное наследование интерфейсов:
>процедура запуска RunMe(SubModule) и RefreshMe
Но я бы сперва попроектировал такую ВЕЩЬ пару месяцев :)


 
Palladin ©   (2003-09-20 00:28) [2]

эт точно...


 
pum5a   (2003-09-21 00:07) [3]

Дык уже пару месяцев проектирую, всё боюсь хреново нАчить ;)


 
jack128 ©   (2003-09-21 01:38) [4]


> Дык уже пару месяцев проектирую, всё боюсь хреново нАчить
> ;)

Начинай. ВСЕ зарание нельзя учесть, все равно по ходу придется переделовать что то..



Страницы: 1 вся ветка

Текущий архив: 2003.10.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-4121
Viktor Kushnir
2003-09-12 15:36
2003.10.02
Переустановка Винды


1-3952
Sam Stone
2003-09-20 21:02
2003.10.02
Регионы


3-3737
Radionov Alexey
2003-09-12 08:41
2003.10.02
---|Ветка была без названия|---


3-3718
BorisSV
2003-09-15 11:32
2003.10.02
Отменить удаление используя ActionList => DataSetDelete


3-3785
Samgin
2003-09-11 12:54
2003.10.02
Record already locked by this session