RUS  ENG 

Плагин на c#

Страницы: 1
RSS
Плагин на c#
 
Здравствуйте. Пытаюсь написать плагин к зулу на c#, но документации недостаточно, а пример поставляемый с программой (ov.dll) во первых на бейсике, во вторых под пятую зулу. Возможно ли увидеть минимальный пример - как собрать плагин на c# для зулу.
 
Вроде разобрался
 
Цитата
rasergiy написал:
Вроде разобрался
Подскажите куда копать?
 
Также интресует как сделать? как на с# создать dll activex понятно, но как сделать юзеринтерфейс и внедрить его в зулу не понятно, на делфи создается ocx, на с# не понятно как делать. если создать винформу то она компилится как exe ....
 
Александр, на C# есть возможность создания UserControl, который будет действовать как ActiveX Control:
https://blogs.msdn.microsoft.com/asiatech/2011/12/05/how-to-develop-and-deploy-activex-control-in-c/
и др. с https://www.google.com/search?q=c%23+activex+control
 
В текущей версии ZuluGIS 8.0 появилась возможность для использовать файл манифеста для описания плагина вместо реестра.
(см. https://www.politerm.com/zuludoc/zuluax/index.html#plugin_info.html)
 
cgf
Цитата
Дмитрий Озеров написал:
В текущей версии ZuluGIS 8.0 появилась возможность для использовать файл манифеста для описания плагина вместо реестра.
(см. https://www.politerm.com/zuludoc/zuluax/index.html#plugin_info.html спасибо большое. буду изучать
спасибо большое, буду изучать
 
Цитата
Дмитрий Озеров написал:
Александр, на C# есть возможность создания UserControl, который будет действовать как ActiveX Control:
https://blogs.msdn.microsoft.com/asiatech/2011/12/05/how-to-develop-and-deploy-activex-control-in-c/
и др. с https://www.google.com/search?q=c%23+activex+control
я так и делал создал клаас библиотеки, проверил его через эксплоер да работает...но вопрос как мне создать пользовательское окно, например с различными кнопками, чтобы когда когда запускаешь модуль из зулу открывалось окно winforms с к различными кнопками....если в с# в ClassLibary добавить winforms то она уже не собирается, ругается на ошибки dll
Цитата

Проект, создающий библиотеку классов, не может быть

непосредственно запущен.

для отладки данного проекта добавьте к решению проект

создающий приложение и ссылающийся на эту библиотеку и

сделайте его запускаемым.

 
Александр,
1. Пользовательское окно может быть плавающим или модальным. Плавающее окно (может например докироваться), как окна браузера БД, "Свойства", "Рабочее место" и проч. создаются либо с помощью плагина-элемента ActiveX, либо вручную в коде плагина через Zulu.CreateControlBar и IControlBar.EmbedControl
2. Формы WinForms рекомендую использовать только модально, иначе немодальные (плавающие) формы нормально без обработчика сообщений, реализованного в WinForms, в чужеродном процессе работать не будут.
3. Сообщение, которое Вы привели, касается невозможности непосредственной отладки dll (что верно), причём здесь "не собирается, ругается на ошибки dll" ??
 
Цитата
Дмитрий Озеров написал:
Александр,
1. Пользовательское окно может быть плавающим или модальным. Плавающее окно (может например докироваться), как окна браузера БД, "Свойства", "Рабочее место" и проч. создаются либо с помощью плагина-элемента ActiveX, либо вручную в коде плагина через Zulu.CreateControlBar и IControlBar.EmbedControl
2. Формы WinForms рекомендую использовать только модально, иначе немодальные (плавающие) формы нормально без обработчика сообщений, реализованного в WinForms, в чужеродном процессе работать не будут.
3. Сообщение, которое Вы привели, касается невозможности непосредственной отладки dll (что верно), причём здесь "не собирается, ругается на ошибки dll
извините за глупые вопросы, мне не хватает еще знаний, на делфи мы делали плагин так: создали юзер интерфейс, сделали ветку в реестре, зарегистрировали ее и запускали через пункт меню зулу модули......в си шарпе я так понимаю нужно сделать ClassLibrary покдлючить через ссылки dll от zulu library и потом уже как вы выше написали создавать интерфейс через Zulu.CreateControlBar ????
 
Александр, если уже есть опыт создания того же самого на Delphi, то я бы рекомендовал использовать её (C# требует мне кажется большей квалификации), либо повторить всё то же самое, но на C#. Zulu.CreateControlBar предоставляет бОльшую гибкость, но и требует бОльшего понимания.
 
Цитата
Дмитрий Озеров написал:
Александр, если уже есть опыт создания того же самого на Delphi, то я бы рекомендовал использовать её (C# требует мне кажется большей квалификации), либо повторить всё то же самое, но на C#. Zulu.CreateControlBar предоставляет бОльшую гибкость, но и требует бОльшего понимания.
а у вас нет видео урока по созданию плагина на с# хотя бы самого элементарного, или хотя бы текстовой инструкции...
 
и можно ли через пункт меню модули -> создать -> java script написать модуль, который будет брать данные из внешней базы данных(mysql) и отрисовывать обьекты на карте используя setInterval() допустим каждые 5 минут?
Изменено: Александр - 26.02.2019 11:29:35
 
Александр, нет, пока таких роликов нет.
По поводу javascript: данные из MySQL можно получать либо через объекты ZuluGIS, либо через какие-либо Ваши объекты для этого. Чтобы графические объекты отображались на карте, их можно создать в имеющемся слое или отдельном слое и добавлять такой слой в карту. Это тоже можно сделать через скрипт.
 
Цитата
Александр написал:
отрисовывать обьекты на карте используя setInterval() допустим каждые 5 минут
Если речь идёт о каких-либо данных датчиков или что-то ещё, то это можно сделать через бирки. (см. https://www.politerm.com/zuludoc/index.html#label_overview.html)
У карты также можно выставить интервал автообновления (в настройках карты)
 
Цитата
Дмитрий Озеров написал:
Александр,
1. Пользовательское окно может быть плавающим или модальным. Плавающее окно (может например докироваться), как окна браузера БД, "Свойства", "Рабочее место" и проч. создаются либо с помощью плагина-элемента ActiveX, либо вручную в коде плагина через Zulu.CreateControlBar и IControlBar.EmbedControl
2. Формы WinForms рекомендую использовать только модально, иначе немодальные (плавающие) формы нормально без обработчика сообщений, реализованного в WinForms, в чужеродном процессе работать не будут.
3. Сообщение, которое Вы привели, касается невозможности непосредственной отладки dll (что верно), причём здесь "не собирается, ругается на ошибки dll" ??
1. в делфи и в vb6.0 есть возможность создавать activeX control(OCX), но в visual studio 2017 в c# и в vb.net ( и в более ранних версиях) такой возможности нет, можно только создать dll с пользовательским элементом управления. Если создать такую dll с пользовательским элементом управления, сделать сборку видимой для COM и зарегистрировать через regasm и подключить для проверки в IExplorer <OBJECT id="testActiveX" classid="clsid:bd9789e0-143e-42ec-8857-9553d9a39c22" codebase="testActiveX.cab"></OBJECT> то ничего не происходит, форма не отображается. если в этой DLL писать функции и вызывать их в IExplorer через JS то они срабатывают.

Собственно вопрос как создаются плагины с пользовательским интерфейсом как без помощи ОСХ ??? или нужно создавать DLL в котором описывать уже функции и методы, и уже в это DLL через CreateControlBar рисовать окно плагина(но как это делать без графического редактора пользовательского интерфейса, не в ручную же описывать где должны быть кнопки и поля ввода)? не могли бы вы дать примера кода как это реализовывается на vb.net как пример, а на не бейсике 6 версии..на дворе как бы идет 2019 год,.......
Изменено: Александр - 27.02.2019 11:17:42
 
Цитата
Александр написал:
в делфи и в vb6.0 есть возможность создавать activeX control(OCX), но в visual studio 2017 в c# и в vb.net ( и в более ранних версиях) такой возможности нет, можно только создать dll с пользовательским элементом управления
  1. Пользовательский элемент управления сделанный ComVisible и есть ActiveX Control.
  2. Мы выложили пример такого контрола и как его оформить как плагин ZuluGIS (см. https://www.politerm.com/samples/plugins/csharp/SampleFormPluginCS/)
Страницы: 1