Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Runtime package [D6, Win2k]


Суслик ©   (2004-11-12 10:36:00) 

Добрый день.

В настоящий момент появилась задача разделить проект на части таким образом, чтобы прикладные задачи могли быть обнослены без перекомпиляции всего проекта.

Для этой цели я решил использовать runtime package (runtime only!).

Эксперимент был удачен. В настоящий момент у меня есть такая конфигурация:
1) Есть пакет tools, который предосталяет операции обработки результата с выводом их на форму, которая лежит в этом же пакете.
2) Есть пакет AddInsPrototype описывающий класс-предок для плугинов и переменную CurrClass: AddInsPrototypeClass
3) Главный проект в настойках имеет галочку в поле build with runtime packages. В списке пакетов установлен только AddInsPrototype.
4) Для каждого плугина есть свой пакет, который используется AddIndsPrototype. Я его грузу через LoadPackage. В initialization одного из модулей пакета стоит строчка CurrClass := TCurrAddInsClass.
5) После того, как главный проект загружает плугин он обращается к CurrClass инстанцирует класс, выполняет нужные с ним операции, удаляет класс, выгружает пакет.

Все нормально работает.
Настолько неожиданно нормально, что у меня есть подозрения, что проблемы обязательно будут потом :)

Поэтому вопросы:
1. Кто как реализует плугины через packages?
2. Есть ли по этому ХОРОШАЯ литература (доступная лит-ра в виде Тайкстеры с Пачеко и штатного хелпа Дельфи изучена)?
3. Как определяется какие пакеты мне нужно перечислять в списке runtime пакетов? Замечу, что я не перечислял ни rtl ни vcl. Очевидно они подгрузились из одного из пакетов. Но также замечу, что когда в тестовых целях создавал проект и пакет, где в списке пакетов проекта был только мой пакет, а мой пакет required только rtl и проект использовал скажем tbutton, то все нормально компилилось, тогда как, очевидно, что tbutton из пакета vcl, который я нигде не указал. Вот этого я понять не могу.

ЗЫ. Вообще говоря мне достаточно ответа на вопрос 2, но если будут ответы на другие вопросы, тоже буду рад.


SiJack   (2004-11-19 10:54:00) [1]

Про плугины есть пара статей на Королевстве Делфи
еще статейка про пакеты http://community.borland.com/article/0,1410,27178,00.html


PEAKTOP   (2004-11-14 03:34:00) [2]

Из своего опыта - если ты компилил прогу с рантаймами, то тяни на клиента все нужные твоей проге *.bpl из %SYSTEM ROOT%\SYSTEM32\.Если даже прога не попросит BPL, то даже единственный нужный ей BPL попросит все то, что у него в requires.

Из-за этой фигни я и отказался от использования рантаймов. Весит exe-шник 2 метра - ну и черт с ним.

А плагины можно писать еще и с помощью DLL.

Литературы на эту тему стоящей не видел. Все, что имеется - это типа "Delphi для чайников", которая помагает как мертвому припарка.

Кстати, народ, может подскажете че-нить ? Присоединяюсь к вопросу автора №2.


Наверх

Титульная страница Поиск, карта сайта Написать письмо