Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 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.051 c
1-1125571183
VadimX
2005-09-01 14:39
2005.09.25
WinCRT


1-1125586034
RzCoDer
2005-09-01 18:47
2005.09.25
NT сервисы


1-1125567929
zhlob
2005-09-01 13:45
2005.09.25
Типы в C# и Delphi


4-1122454533
Freez
2005-07-27 12:55
2005.09.25
Загрузка процессора


2-1124377170
Viktop
2005-08-18 18:59
2005.09.25
Относительный путь к файлу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский