Я только начинаю путешествовать по «Гидре», но я сделаю все возможное, чтобы ответить на ваши вопросы.
Q1. На этот вопрос сложно ответить, не говоря уже о вашей ситуации. У вас есть доступ к базе данных Delphi? Вы добавляете плагин к существующему приложению, у которого уже есть плагины, или вы только начинаете добавлять фреймворк Hydra к вашему приложению? На данный момент я предполагаю, что вы добавляете новый плагин в существующее хост-приложение, и у вас есть .pas-файл, содержащий пользовательские интерфейсы, которые вы собираетесь использовать для связи между хостом и вашим плагином. Если это так, то для вас должно работать следующее.
- Вам необходимо запустить новый проект «RemObjects Hydar» -> «Plugin Module» в Visual Studio.
- Импортируйте файл .pas, содержащий интерфейсы связи, выбрав «Инструменты» -> «Hydra» -> «Импорт интерфейсов из модуля Delphi»
- Добавить новый «RemObjects Hydra» -> «(Non-) Visual Plugin "в ваш проект
- Добавьте интерфейс в свой новый класс плагина и реализуйте методы интерфейса.
Это должно быть об этом. Теперь ваше приложение-хозяин сможет запросить ваш плагин, чтобы узнать, какие интерфейсы он реализует, а затем вызвать методы, которые он требует.
Это что-то вроде того, что импортированный файл должен выглядеть интерфейс
type
{$REGION Attributes}
[Guid('9D445B3E-CA9F-4C67-815A-F5EC6BAB5D60')]
{$ENDREGION}
IMyInterface = public interface(IHYCrossPlatformInterface)
method MyMethod(const MyInput: String; out MyOutput: String);
end;
Это что-то вроде того, что ваш класс плагин должен выглядеть
type
[Plugin, NonVisualPlugin]
MyPlugin = public partial class(RemObjects.Hydra.NonVisualPlugin, IMyInterface)
private
protected
method Dispose(aDisposing: boolean); override;
method MyMethod(const MyInput: String; out MyOutput: String);
public
constructor;
end;
Q2. Насколько я знаю, управление модулем отвечает за регистрацию всех плагинов в вашем модуле плагина с помощью хост-приложения. Вы также можете использовать его из своих плагинов для связи с хост-приложением.
Q3. Я предполагаю, что вы имеете в виду THYModuleManager. Это используется (помимо всего прочего) для загрузки всех ваших плагинов во время выполнения.
Надеюсь, что это поможет.