Делает текущим следующий объект слоя.
Visual Basic:
Sub MoveNext()
Перед первым вызовом обязателен MoveFirst. Без него итератор остаётся пустым: MoveNext ничего не меняет, IsEOF по-прежнему возвращает True, а ElemID — -1.
Когда объекты кончились, IsEOF возвращает True. Это и есть условие выхода из цикла.
Visual Basic:
Sub IZEnumElements_MoveNext 'Итератор по объектам активного слоя карты Set L = Zulu.ActiveMapDoc.Layers.Active Set En = L.EnumElements En.MoveFirst 'Ключи всех объектов слоя s = "" Do While Not En.IsEOF s = s & En.ElemID & " " En.MoveNext Loop MsgBox s End SubPython:
import zulu def Macro_IZEnumElements_MoveNext(): # Итератор по объектам активного слоя карты L = zulu.App.ActiveMapDoc.Layers.Active En = L.EnumElements() En.MoveFirst() # Ключи всех объектов слоя keys = [] while not En.IsEOF(): keys.append(En.ElemID) En.MoveNext() print("Ключи:", keys)