Форум: "Компоненты";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизRuntime package Найти похожие ветки
← →
Суслик © (2004-11-12 10:36) [0]Добрый день.
В настоящий момент появилась задача разделить проект на части таким образом, чтобы прикладные задачи могли быть обнослены без перекомпиляции всего проекта.
Для этой цели я решил использовать 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, но если будут ответы на другие вопросы, тоже буду рад.
← →
PEAKTOP © (2004-11-14 03:34) [1]Из своего опыта - если ты компилил прогу с рантаймами, то тяни на клиента все нужные твоей проге *.bpl из %SYSTEM ROOT%\SYSTEM32\.Если даже прога не попросит BPL, то даже единственный нужный ей BPL попросит все то, что у него в requires.
Из-за этой фигни я и отказался от использования рантаймов. Весит exe-шник 2 метра - ну и черт с ним.
А плагины можно писать еще и с помощью DLL.
Литературы на эту тему стоящей не видел. Все, что имеется - это типа "Delphi для чайников", которая помагает как мертвому припарка.
Кстати, народ, может подскажете че-нить ? Присоединяюсь к вопросу автора №2.
← →
SiJack © (2004-11-19 10:54) [2]Про плугины есть пара статей на Королевстве Делфи
еще статейка про пакеты http://community.borland.com/article/0,1410,27178,00.html
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c