StopEdit method (Layer)

Прекращает редактирование слоя.

Применяется к:

Layer

Синтаксис:

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 Sub

Python:

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)