![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Всем доброго. Появилась необходимость перевести один из проектов на плагинную систему, с тем чтоб не останавливая сам проект (он вращается на сервере, и выключение его для замены весьма напрягает) менять плуги, в случае их модификации.
Изначально думал использовать DLL, но решил еще покопать в сторону BPL. Поскольку не занимался раньше пакетами в Делфи, сейчас получается нахожусь на стадии изучения. Порывшись в инете нашел пару скудненьких описаний реализации плугов, и на основе их попробовал составить простенькую программулинку, имеющую вот такой вид: Модуль главной формы: Код:
Код:
Код:
Судя по всему я не учитываю еще чего-то, ибо FindClass не находит зарегистрированного класса. Вопрос - Чего еще я не учел?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> FindClass('tm2')
оно, по-моему, кейс-сенситивное UDP. Да, оно вызывает IndexOf() у стринглиста, так что должно быть как в исходнике: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 09.12.2011 в 01:04. |
![]() |
![]() |
![]() |
#4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
У GunSmooker'а целая эпопея на эту тему есть в блоге "Реализация системы плагинов" из 11 частей.
Жаль не законченная, но все же может быть вам и поможет. Последний раз редактировалось Человек_Борща; 09.12.2011 в 10:23. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
Главное приложение должно быть Build with runtime packages
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Код:
Код:
отметка стоит? если нет, то надо поставить.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 09.12.2011 в 10:47. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> Build with runtime packages
кстати, да. В списке рантайм пакаджей должен быть rtl. Причём и проложение и плагин должны быть с вынесенным рантаймом, иначе получается, что они работают со своей копией Classes.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FindComponent возвращает nil при поиске компонентов на TabbebNoteBook | [MoNAMur] | Компоненты Delphi | 2 | 30.06.2011 15:58 |
Запись nil | Vladi_88 | Помощь студентам | 2 | 18.04.2011 12:48 |
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу | ArtInt | SQL, базы данных | 9 | 12.05.2010 15:40 |
проверка на nil | kate158 | Общие вопросы Delphi | 2 | 07.12.2009 16:26 |
FindWindow('TMainForm',nil) а дальше куча одноименных кнопок | Стелс | Win Api | 17 | 01.11.2008 01:27 |