RUS  ENG 

Как сделать плагин. Руководство.

Страницы: Пред. 1 2 3 4 След.
RSS
Как сделать плагин. Руководство.
 
Уберите, пожалуйста, круглые скобки в вызове метода GetRealXY.
 
Без скобок заработало.

Почему внутри фрейма OptionBox`ы (их текст) залиты чёрным фоном? Не отключается. Снаружи фрейма фона нет.
 
Цитата:
Без скобок заработало.
Конечно. Подробнее когда используются скобки, а когда нет посмотрите в описании к Visual Basic.

Цитата:
Почему внутри фрейма OptionBox`ы (их текст) залиты чёрным фоном? Не отключается. Снаружи фрейма фона нет.
Мы не можем ответить на этот вопрос. Попробуйте поискать на форумах по Visual Basic (я писал ссылки ранее).
 
Эффект залития OptionBox`а внутри фрейма наблюдается только в Зулу, в обычном проекте VB такого нет. Вряд ли кто-то лучше вас разбирается в Зулу. А поиск не дал результата.
 
Ekolog, я проверил, OptionButton (речь скорее всего о нем ?) прекрасно выглядит внутри Frame'а.
 
Да, конечно OptionButton. Даже и не знаю, что сказать. Скриншот выслать?
Пока вышел из положения тем, что разместил их поверх фрейма. Так хотя бы визуальное оформление есть.
Вы не могли бы выложить куда-нибудь ваш плагин с радиокнопками, чтобы я у себя его проверил? Может, в системе дело?
 
Напишите мне письмо на [email protected] (Дмитрий Озеров), я пошлю свой вариант. От примера SamplePluginForm он отличается тем, что я добавил Frame и несколько OptionButton.
 
Что-то непонятно, как добавить символ?
Что за номер типа? Bitmap - Line - Symbol - Unknown?
Что за номер режима?
Типовые символы - это те, которые уже есть в системе? Это про них идёт речь в AddSimpleSymbol method (Layer)? Так там только кружок, больше нету.
Что возвращает функция AddSymbol method (Layer)?
 
AddSymbol/AddSymbolEx/AddSimpleSymbol возвращают ID добавленного элемента слоя. AddSimpleSymbol добавляет простой символ (примитив). AddSymbol/AddSymbolEx добавляют типовой символьный объект. Как любой типовой объект он должен быть задан типом (ElemType) и режимом (ElemMode). ElemType - id типа, можно посмотреть в редакторе структуры, ElemMode - порядковый номер режим (начиная с 1).

У меня не доставляет письма на '[email protected]', сервер ругается, что '451 host lookup did not complete', может какой-то другой почтовый адрес пропробуете ?
 
Типы в библиотеке Зулу нашёл вроде. eStyleElemTypeSymbol имеется в виду?
А про режим не нашёл. Расскажите поподробнее, или где посмотреть.
И общая логика работы с символами не укладывается в голове. Вот нарисовал я заранее символ в слое, его открыл, а дальше... ? Или программно нарисовал (как в примере "Работа с символами"), и на строке Layer.AddSymbol ... программа спотыкается.
 
Нет, eStyleElemTypeSymbol не то. Если нарисовали символ в структуре слоя, то с помощью него можно добавлять простой символьный объект (примитив) через AddSimpleSymbol (id символа, который нужно использовать для этого указвывается в SymbolID). Если структура слоя предусматривает типизированные объекты (см. примеры инженерных сетей), то можно добавлять типизированный символьный объект. Про типизированные объекты см. здесь: politerm.com/zuludoc/struct_typemode.htm
 
Ваш пример с радиокнопками у меня тоже залит чёрным, видимо, в моей системе дело.

Подскажите, как зарегистрировать плагин в 64х разрядной системе (7)? Я пробовал брать из папки System32 файл Regsvr32 и им регистрировать - не получается, ошибку выдаёт.
 
Ekolog, возможно зависит от service pack'а для Visual Basic'а. Я проверял на Visul Basic 6.0 с уcтановленным Sevice Pack 6.
Для регистрации на x64 можно пользоваться regsvr32.exe, мы пользуемся. Чтобы что-то сказать по Вашему случаю, нужно знать какую именно ошибку выдает.
 
Подскажите, пожалуйста, как можно найти (указать) символ? Пробовал пересечением слоя с контуром - не находит.
Может, напрямую в него мышью тыкать, может, ещё как.
 
Не уверен, что понял Вас. Найти символ по заданным координатам ? См. Layer.ElemIDByXY, он ищет объект как если бы в него щелкнули мышью.
Отметить конкретный элемент на карте - см. Layer.CurrentID
 
Да, благодарю, это то, что надо. Подойдут оба способа. Все глаза проглядел, а этих функций не увидел...
Только получается, что в Layer.ElemIDByXY координаты нужно указывать точно, без допуска? Если бы было что-то вроде радиуса поиска, как в GetClosestElementByXY, такая функция есть? Или ловить контуром.
 
Ekolog, так можно саму GetClosestElementByXY и использовать.
 
Еще, если слой загружен в карту, то Layer.ElemIDByXY будет искать объект в пределах пяти пикселей при текущем масштабе карты, как будто ткнули в карту мышкой.
 
GetClosestElementByXY пробовал - линию находит, а точку нет. Попробую ещё раз. С ElemIDByXY экспериментирую.
...
GetClosestElementByXY работает, была не та проекция у слоя точек. Остальные функции похоже тоже из-за этого не работали.
 
И да, что-то я не нашёл раздела с найденными ошибками в текущей версии программы. Укажите, а пока здесь напишу.
Давно дело было, уже подзабыл точно не скажу, но вот сейчас снова столкнулся с некорректной работой с проекциями.
...
пардон, проверяю
 
Цитата:
И да, что-то я не нашёл раздела с найденными ошибками в текущей версии программы. Укажите, а пока здесь напишу.
Если ошибку обнаруживают пользователи, то мы исправляем и им в дискуссии сообщаем. Прочим пользователям это ни о чем не скажет.
 
Цитата
Должен предоставить пользователю некоторую форму, встроенную в систему Zulu, с которой пользователь будет взаимодействовать. Форма является основной частью функционирования плагина. Тогда плагин можно оформить в виде библиотеки элементов ActiveX, и форма плагина должна быть выполнена в виде элемента ActiveX (OLE Control).

как это сделать на vb.net или c# ?????
 
Цитата
Александр написал:
как это сделать на vb.net или c# ?????
Вот примеры для C#:
  1. https://blogs.msdn.microsoft.com/asiatech/2011/12/05/how-to-develop-and-deploy-activex-control-in-c/
  2. https://code.msdn.microsoft.com/CSActiveX-c3f43e7d
 
Цитата
Дмитрий Озеров написал:
Цитата
Александр написал:
как это сделать на vb.net или c# ?????
Вот примеры для C#:
https://blogs.msdn.microsoft.com/asiatech/2011/12/05/how-to-develop-and-deploy-activex-control-in-c/
https://code.msdn.microsoft.com/CSActiveX-c3f43e7d
спасибо я эти ссылки уже второй день изучаю =) просто по аналогии как в делфи проверял через подключение к IE...функции из примера срабатывали, а вот сам графический интерфейс(форма пользовательская) не отрисовывалась...отсюда и ступор..но сейчас вы опубликовали исходники для с# и стало более понятно что к чему....и еще вопросик, я ваш пример скомпилировал и зарегистрировал через regasm.exe /codebase никаких рошибок не было, но при попытке запустить плагин из зулу, выдает ошибку "не удалось создать окно модуля, код ошибки 0х80040154, класс не зарегистрирован"
 
Цитата
Александр написал:
"не удалось создать окно модуля, код ошибки 0х80040154, класс не зарегистрирован"
Такая ошибка возможна, если сборка скомпилирована не под платформу x86, а под AnyCPU и запускается на 64-битной ОС.
Страницы: Пред. 1 2 3 4 След.