Официальный сайт геоинформационной системы (ГИС) ObjectLandОфициальный сайт геоинформационной системы (ГИС) ObjectLand
  
 
ПОИСК ПО САЙТУ:
yandex.ru
КАРТА САЙТА
 
главная / поддержка / форум
E-MAIL:ПАРОЛЬ: 
регистрация

Обсуждение

 IGDBLayoutElementIGDBLayoutElement [ alans ]
Понедельник, 26 ноября 2007, 17:44

Столкнулся с такой проблемой: создаю элемент карты:

GDBEngineLib.IGDBLayoutElement map_el;

Затем обращаюсь к нему, чтобы получить какие-либо параметры, например:

int num = map_el.Number;

Во время выполнения выдает ошибку NullReferenceException.

Подскажите пожалуйста, как с этим бороться. Заранее благодарен.

 IGDBLayoutElement [ ObjectLand Support ]
Понедельник, 26 ноября 2007, 18:25

Объект LayoutElement представляет элемент макета ГБД, а не элемент карты. В приведенном коде вы не создаете элемент, а всего лишь объявляете переменную типа IGDBLayoutElement, поэтому и NullReferenceException. Создание элементов макета см. документацию по СОМ-интерфейсам ObjectLand:
http://www.objectland.ru/support/doc/comapi/H1_Layout.html
http://www.objectland.ru/support/doc/comapi/H3_Layout_Methods7.html

 IGDBLayoutElement [ alans ]
Понедельник, 26 ноября 2007, 19:33

Дак в моём случае я не хочу создать новый элемент карты, я просто хочу получить информацию о уже существующем элементе, который выбран в данный момент.

 IGDBLayoutElement [ Максим Юрьевич Трухачёв ]
Четверг, 29 ноября 2007, 07:57

Чтобы "получить информацию о уже существующем элементе, который выбран в данный момент", надо сначала программно создать окно редактора темы (Объект ThemeBrowser, объявленный "с событиями") и вывести его на экран. Когда пользователь что-то выберет, возникнет событие ThemeBrowserChanged, которое вы должны обработать (на обработчики событий есть ограничения - они не должны взаимодействовать с пользователем, и должны исполняться максимально быстро). То есть пользователь должен будет работать с картой через вашу программу, к работающему ObjectLand подключиться извне невозможно.

 IGDBLayoutElement [ Alexei ]
Пятница, 30 ноября 2007, 18:58

А жаль, что невозможно. Кстати, GDBThemeBrowser - довольно глючная штука, если его встраивать в родительское окно. ExecuteCommand вообще работает непонятно как. У меня, например, команда gdbBrowserCmdThemePrint
подвешивает программу на второй странице диалога печати, а gdbBrowserCmdWindowRefresh вызывает исключение (точно не помню, что-то вроде ClipRect not understood).
Наверно, поэтому в ObjectLand Explorer не используется GDBThemeBrowser? ;\

 IGDBLayoutElement [ ObjectLand Support ]
Пятница, 30 ноября 2007, 19:21

Мы проверим поведение GDBThemeBrowser, а в ObjectLand Explorer он не используется по архитектурным соображениям.

 IGDBLayoutElement [ alans ]
Суббота, 1 декабря 2007, 14:16

Спасибо огромное! Натолкнули на интересную идею. Всё отлично заработало!

Ответить

Знаком «*» отмечены обязательные для заполнения поля.
Ваше имя:  *
Адрес электронной почты:  
Тема:  *
Сообщение:
 *
Подтверждение:
(не требуется для зарегистрированных пользователей)
 *
 



Copyright © 1999–2022 ГИС ObjectLand
ГИС ObjectLand ® ООО «Радом-АйТи»
Информация о лицензировании
главная | о продукте | скачать | купить | поддержка | новости