Прекращает редактирование слоя.
Visual Basic:
Function StopEdit() As Long
Этот метод «высвобождает» слой из состояния редактирования ранее инициированного вызовом метода StartEdit. Если возвращаемое значение равно нулю, значит число вызовов метода StartEdit стало меньшим или равным числу вызовов метода StopEdit, и слой могут редактировать другие пользователи.
Метод возвращает тот же счетчик захватов, что и StartEdit, только в обратную сторону: после трех захватов вызовы дают 2, 1 и 0. Лишний вызов, когда слой уже свободен, ошибки не вызывает и тоже дает 0; свойство EditState становится нулевым, и слой может захватить другой объект Layer.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Пример захватывает слой, показывает состояние редактирования и отпускает слой.
Visual Basic:
Sub Layer_StopEdit 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active S = "EditState до захвата: " & L.EditState 'Захватываем слой дважды S = S & vbCrLf & "StartEdit: " & L.StartEdit & ", " & L.StartEdit S = S & vbCrLf & "EditState: " & L.EditState 'Отпускаем столько же раз S = S & vbCrLf & "StopEdit: " & L.StopEdit & ", " & L.StopEdit S = S & vbCrLf & "EditState после: " & L.EditState MsgBox S End SubPython:
import zulu def Macro_Layer_StopEdit(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active print("EditState до захвата:", L.EditState) # Захватываем слой дважды print("StartEdit:", L.StartEdit(), ",", L.StartEdit()) print("EditState:", L.EditState) # Отпускаем столько же раз print("StopEdit:", L.StopEdit(), ",", L.StopEdit()) print("EditState после:", L.EditState)