Это старая версия документа.
Создайте и настройте новый проект Visual Studio.
Для создания и подключения модуля к программному комплексу Топоматик Робур необходимо создать следующие элементы:
Начнем с создания класса, реализующего функциональность модуля. Это должен быть компонент, наследник от Topomatic.ApplicationPlatform.Module. Создайте новый класс компонента и назовите его «Module». Откройте окно редактирования кода компонента. Измените код класса, сделайте его наследником от Topomatic.ApplicationPlatform.Module. Также можно убрать его из общей области видимости.
partial class Module : Topomatic.ApplicationPlatform.Module { public Module() { InitializeComponent(); } public Module(IContainer container) { container.Add(this); InitializeComponent(); } }
Теперь создадим класс, отвечающий за инициализацию модуля. Этот класс должен быть наследником от абстрактного класса Topomatic.ApplicationPlatform.PluginHost и находится в общей области видимости. У него необходимо реализовать абстрактное свойство PluginName, возвращающее имя вашего плагина, и абстрактную функцию GetModules() возвращающую список типов модулей. В нашем случае мы вернем только один тип - тип нашего компонента.
Создайте новый класс и назовите его «ModulePluginHost». Наследуйте класс от Topomatic.ApplicationPlatform.PluginHost и реализуйте функции как описано выше.
public class ModulePluginHost : Topomatic.ApplicationPlatform.PluginHost { //тут мы возвращаем строку с именем нашего плагина public override string PluginName { get { return "My first module"; } } //тут мы возвращаем типы всех модулей, которые хотим подключить, в нашем примере только один тип protected override Type[] GetModules() { return new Type[] { typeof(Module) }; } }
Для подключения нашей библиотеки к программному комплексу нам необходим файл Имя нашей библиотеки.AddIn.
Это файл в формате XML который содержит инструкции для программного комплекса, позволяющие загрузить и подключить модули, содержащиеся в нашей сборке. Создайте новый файл и назовите его Имя нашей библиотеки.AddIn. Для этого выберите в контекстном меню проекта «Создать элемент…». В диалоге добавления нового элемента выберите XML-файл. Выберите созданный файл в структуре проекта, и назначьте свойству «Копировать в выходной каталог» значение «Всегда копировать», чтобы всегда копировать этот файл в каталог куда Вы собираете Вашу библиотеку. Заполните созданный файл, как показано ниже.
<?xml version="1.0" encoding="utf-8" ?> <Extensibility FileVersion="1"> <Addin> <FriendlyName>Тестовый модуль урок 1</FriendlyName> <Description></Description> <TargetPlaform Name="" Version="15.0"/> <Assembly Name="Имя нашей библиотеки.dll" FullClassName="Имя нашей библиотеки.ModulePluginHost" /> </Addin> </Extensibility>
Тэги <FriendlyName>
и <Description>
это имя и описание плагина, которые будут показаны пользователю. Тэг <TargetPlaform>
указывает версию платформы для которой собирается модуль, на текущий момент версия 15. Тэг <Assembly>
отвечает за подключение сборки, в атрибуте Name
указывается имя библиотеки, а в атрибут FullClassName
- полное имя класса, наследника от PluginHost, включая его пространство имён.
Если необходимо подключить несколько библиотек, можно указать несколько тэгов <Assembly>
.
Выполнив указанные выше действия и скомпилировав проект мы получим полностью работоспособный плагин, подключающий наш модуль к программному комплексу Топоматик Робур.
Сейчас наш модуль полностью пустой. Давайте добавим к нему немного функциональности. Для этого вернемся к коду класса «Module» и перекроем в нём метод OnCreateApplication как показано ниже.
//этот метод будет вызван в момент старта программного комплекса protected override void OnCreateApplication(object sender, CreateApplicationEventArgs e) { base.OnCreateApplication(sender, e); //вызов этого метода покажет стандартный диалог с сообщением MessageDlg.Show("Привет Робур"); }
Этот метод будет вызван при старте программного комплекса, а мы покажем там сообщение, в котором будет написано «Привет Робур».
Теперь мы можем запустить наш проект. Он автоматически соберет нашу сборку в каталог с программным комплексом, скопирует туда же файл AddIn и запустит исполняемый файл программного комплекса, при старте которого мы увидим наше сообщение.