2009-08-13 3 views
1

Мне нужно создать плагин в Delphi Prism для приложения, который уже находится в Delphi. Я прочитал все о Hydra 3.0 на www.remobjects.com и получил несколько запросов.создать плагин в Delphi Prism с помощью Hydra (Remobjects)

  1. Можете ли вы дать мне пример того, как создавать пользовательские интерфейсы для связи между Delphi хоста и .Net Plugin. (Как в C# или Delphi Prism)

  2. какова роль ModuleController в Hydra плагин и как он там работает?

  3. Роль компонента-менеджера?

Большое спасибо заранее.

ответ

1

Я только начинаю путешествовать по «Гидре», но я сделаю все возможное, чтобы ответить на ваши вопросы.

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. Это используется (помимо всего прочего) для загрузки всех ваших плагинов во время выполнения.

Надеюсь, что это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^