EditState property (Layer)

Возвращает признак текущего состояния редактирования слоя из набора констант eEditState.

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

Layer

Синтаксис:

Visual Basic:

Property EditState As Long

read-only

Описание:

Свойство может возвращать следующие значения:

ЗначениеОписание

editNone = 0

слой никто не редактирует.

editByOwner = 1

слой редактирует данный объект Layer.

editByPeople = 2

слой редактируется кем-то со стороны.

Так как в файл-серверном исполнении одновременное редактирование слоя различными пользователями (здесь под пользователем подразумевается экземпляр объекта Layer данного слоя) запрещено, то это свойство позволяет проверить возможность начала редактирования.

Сразу после открытия слоя свойство равно 0. Оно становится равным 1 после StartEdit этого же объекта и возвращается к 0 после StopEdit. Для другого объекта Layer, открывшего тот же слой, свойство в это время равно 2, и начать правку он не может.

Значение 0 не означает, что слой нельзя менять: добавление и удаление объектов через Layer работает и без StartEdit.

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

513

Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.

Пример:

Visual Basic:

Sub Layer_EditState
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
S = "EditState сейчас: " & L.EditState
'Берем слой на правку и смотрим состояние
S = S & vbCrLf & "StartEdit = " & L.StartEdit & ", EditState = " & L.EditState
'Отдаем слой обратно
S = S & vbCrLf & "StopEdit = " & L.StopEdit & ", EditState = " & L.EditState
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_EditState():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    print("EditState сейчас:", L.EditState)
    # Берем слой на правку и смотрим состояние
    print("StartEdit =", L.StartEdit(), ", EditState =", L.EditState)
    # Отдаем слой обратно
    print("StopEdit =", L.StopEdit(), ", EditState =", L.EditState)