На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

MapGisServer диалог DoDlgOpenData

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
MapGisServer диалог DoDlgOpenData
 
Добрый день господа разработчики.
Пишу на c# gis Toolkit 12.

Мне необходимо открыть карту с моего сервера. Для этого я использую функцию MapGisServer.DoDlgOpenData(). Вопросы:
1. Как записать в переменную значение выбранной мной карты из списка?
2. Как отключить в диалоговом окне кнопку "Добавить"?
3. Как поймать нажатие на кнопку "Открыть"?

Заранее спасибо!  
 
Компонент axMapGisServer предназначен для установки связи с ГИС Сервером, выбора пространственных данных для их открытия в связанном с ним компоненте axMapView (или axMapScreen).
Диалог, вызываемый методом MapGisServer.DoDlgOpenData(), автоматически откроет (добавит) выбранные данные в компоненте axcMapView.
Поэтому "отловить" эти действия можно уже в компоненте axcMapView - например, с помощью событий OnChangeMap или OnAppendSite.
Кнопка "Добавить" должна быть и так отключена, когда в связанном с axMapGisServer компоненте axcMapView нет ни одной открытой карты (добавлять не к чему).

Если такая реализация не устраивает, Вы можете самостоятельно вызывать этот диалог, используя MAPAPI:
Код
 // Вызвать диалог выбора доступных пользователю данных на ГИС Сервере
 // parm    - параметры задачи (поле Handle должно содержать
 //           идентификатор главного окна)
 // name    - буфер для размещения выбранного алиаса данных
 //          (выделять не менее MAXPATH)
 // size    - размер выделенного буфера
 // Имя выбранного алиаса карты помещается в name
 // При ошибке возвращает ноль

 long int WINAPI svOpenDataEx(TASKPARM *parm,char * name,long int size);


Но для корректной работы диалога потребуется реализовать обработку сообщений в окне, передаваемом в параметре parm.Handle.
Окну шлются следующие сообщения:
 MSG_AW_OPENDOCUN = $623; //  открыть карту
 MSG_AW_OPENDOC = $655; //  открыть карту
 MSG_AW_GETCURRENTDOC = $673; //  вернуть идентификатор открытых данных
 MSG_MT_CHANGEDATA = $65D; // изменение данных
 MSG_AW_OPENATLAS = $0680+373; //  открыть атлас

Подробнее можно посмотреть в исходных текстах самого компонента - в модуле mapgsrv.pas.
 
Подскажите пожалуйста, я в списке выбрал необходимую мне карту и как мне теперь получить её полный Алиас?? (строку подключения)  
 
Когда пользователь выбирает в диалоге строку и нажимает открыть, идентификатору окна, переданному в диалог,
посылается сообщение AW_OPENDOCUN:

::SendMessage (TaskParm.Handle, AW_OPENDOCUN, (WPARAM)name, 0);

где параметр WPARAM содержит указатель (const WCHAR *) на полный алиас выбранного набора данных.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности