Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как сделать слой активным?

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
burgomistr



Зарегистрирован: 24.03.2008
Сообщения: 10

СообщениеДобавлено: Вт 20 Янв 2009 01:48    Заголовок сообщения: Как сделать слой активным? Ответить с цитатой

Собственно сабж. По имени или ID без разницы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Ср 21 Янв 2009 16:58    Заголовок сообщения: Активирование слоя Ответить с цитатой

Как вариант, я думаю, можно выделить любой объект (имеющий форму) из этого слоя, а потом снять его выделение.
"Любой объект слоя" - например, сделать выборку всех объектов данного слоя и взять ID первого же из них.
ЗЫ. При большом кол-ве операций в программе запрос всех объектов ради выделения одного единственного привел бы к тормозам, но в данном случае (по-видимому) эта операция производится только однажды в конце работы алгоритма, ни каких операций с полученным списком объектов мы не производим, поэтому визуально задержка будет не заметна... Надеюсь Wink

ЗЫЫ.
Запрос списка объектов: Application.ActiveDb.MapObjects.QueryByLayers(aLayerIDs)
Снятие выделения с объектов: Application.Selection.DeselectAll()
Выделение объекта: Application.Selection.SelectAlone(anObjectID, aShapeIndex)

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 26 Янв 2009 22:21    Заголовок сообщения: Ответить с цитатой

Код:
procedure ActivateLayer(aLayerId: String);
begin
   with FIngeo.ActiveProjectView do begin
      ActiveLayerView := FindLayerView(aLayerId);
   end;
end;

_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Вт 27 Янв 2009 12:49    Заголовок сообщения: Ответить с цитатой

Very Happy Руслан, спасибо, что поправили))) Я почему-то решил, что этот параметр "только для чтения".
_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB