Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Доступ к основной форме из плагина


Автор: Winprogrammer 17.12.2006, 11:53
Привет всем!!!

Есть проблем. Я вызывая из программы bpl файл. В нём есть форма. Её я создаю с родителем главной формы приложения. Как из этого плагина получить доступ ко всем формам приложения и их структуре???

Заранее спасибо!

Автор: Snowy 17.12.2006, 13:15
Никак.
Продумывай другой принцип взаимодействия.

Автор: Winprogrammer 17.12.2006, 17:22
Цитата(Snowy @ 17.12.2006,  13:15)
Никак.
Продумывай другой принцип взаимодействия.

Я много думал над этим. Но в итоге остановился на bpl и Вы вдруг сломали мои идеи. Как же можно по другому взаимодействовать с формой приложения из плагина?

Автор: Snowy 17.12.2006, 19:06
Форма в плагине - подчинённый модуль.
Она не должна управлять остальной программой.
Если это не так, то архитектура проекта не продумана, или продумана неправильно.
Если нужно дать комманду в плагин, то он должен иметь соответсвующие функции.
Если нужно получить вызов из плагина, то он должен иметь соответствующие события.
Сам он не должен управлять программой - программа должна управлять им.

Автор: Winprogrammer 18.12.2006, 14:30
Цитата(Snowy @ 17.12.2006,  19:06)
Форма в плагине - подчинённый модуль.
Она не должна управлять остальной программой.
Если это не так, то архитектура проекта не продумана, или продумана неправильно.
Если нужно дать комманду в плагин, то он должен иметь соответсвующие функции.
Если нужно получить вызов из плагина, то он должен иметь соответствующие события.
Сам он не должен управлять программой - программа должна управлять им.

Тогда в связи с этим следующий вопрос: из выше Вами изложенного следует, что нужно продумать все варианты процедур, которые понадобятся в плагине, для каждой переменной писать функцию, которая будет возвращать её значение.

Моя архитектура строится по принципу изложенному Чертёнком в статье "Приложения с подключаемыми модулями (плагинами)… и Delphi", приекреплённой к теме. Если это поможет, то я пишу базу данных домашней библиотеки дисков и хочу именно туда прилепить плагины. Пока она абсолютно бесплатная и весит порядка 7,6 метров(без возможности плагинов). Пока я делаю так, что в моей системе будет три типа плагинов: плагины при сканировании диска(сканирование архивов и т.п), плагины используемые при занесении файлов в базу(например файло .cdr, *.psd и др.) и плагины интерфейса.

Поэтому писать огромное количество процедур и функций как-то не хочется.
А можно-ли это реализовать через технологию COM?
Как это делается в инет-броузере Mozilla Firefox? Там используется полная поддержка плагинов. Есть возможность скачать исходник, но он весит проядка 200 метров.  smile

Автор: Sansa 18.12.2006, 16:18
Очень хорошая структура API плагинов у FAR Manager. Правда его исходники не доступны, но используя описание API можно сварганить свое

PS почему-то speel-checker отметил "плагинов" и пропустил "сварганить" smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)