Возвращает или устанавливает значение ключа (ID) объекта слоя, который в данный момент выделен (мигает на карте).
Visual Basic:
Property CurrentID As Long
При присвоении CurrentID какого-то значения произойдет поиск объекта в слое карты, с ключом, имеющим такое значение и, если такой объект найден, он начнет мигать. Если найденный объект находится за пределами видимой части карты, карта (MapCtrl) изменит свойства MapX и MapY таким образом, что найденный объект после автоматического перестроения окажется в центре окна карты.
Чтобы погасить мигающий объект, нужно присвоить CurrentID-1.
Свойство работает для слоя, загруженного в карту. У слоя, открытого методом Open вне карты, оно остаётся равным -1: запись значения его не меняет и ошибки не вызывает.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Слой, объект которого переводится в режим мигания не обязательно должен быть активным. Если мигает объект неактивного слоя, то свойство CurrentID данного слоя будет содержать значение ключа, в то время как свойство MapCtrl.CurrentID, содержащего этот слой будет равно -1.
Visual Basic:
Sub Layer_CurrentID 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Первый объект слоя начинает мигать, карта показывает его в центре окна Set En = L.EnumElements En.MoveFirst L.CurrentID = En.ElemID MsgBox "Мигает объект " & L.CurrentID & vbCrLf & "Нажмите ОК, чтобы погасить" 'Гасим мигание L.CurrentID = -1 End SubPython:
import zulu def Macro_Layer_CurrentID(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active # Первый объект слоя начинает мигать, карта показывает его в центре окна En = L.EnumElements() En.MoveFirst() L.CurrentID = En.ElemID print("Мигает объект", L.CurrentID) # Гасим мигание L.CurrentID = -1