InMemory property (Layer)

Определяет, что слой является слоем в памяти.

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

Layer

Синтаксис:

Property InMemory As Boolean

Описание:

Свойство показывает, что слой держится в памяти: изменения, производимые с объектами такого слоя, в графическую базу данных не записываются.

Слой в памяти создается методом AddInMemory коллекции слоев карты: у такого слоя свойство равно True, имя начинается с $in_memory$, файла у него нет, объектов и типов в нем поначалу нет, а присваивание False он не принимает. Дополнительные возможности такого слоя дает объект InMemoryLayer.

Слой, открытый с диска, присваиванием True слоем в памяти не становится: свойство после этого читается как True, но добавленные и удаленные объекты все равно попадают в файл слоя.

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

Код

Описание

513

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

Пример:

Visual Basic:

Sub Layer_InMemory
'Берем карту и ее активный слой
Set M = Zulu.ActiveMapDoc
Set L = M.Layers.Active
S = L.Name & ": InMemory = " & L.InMemory
'Добавляем в карту слой в памяти и смотрим на него
Idx = M.Layers.AddInMemory("Проба в памяти")
Set N = M.Layers.Item(Idx)
S = S & vbCrLf & N.Name & ": InMemory = " & N.InMemory
'Убираем его из карты
M.Layers.Remove Idx
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_InMemory():
    # Берем карту и ее активный слой
    M = zulu.App.ActiveMapDoc
    L = M.Layers.Active
    print(L.Name, ": InMemory =", L.InMemory)
    # Добавляем в карту слой в памяти и смотрим на него
    idx = M.Layers.AddInMemory("Проба в памяти")
    n = M.Layers.Item(idx)
    print(n.Name, ": InMemory =", n.InMemory)
    # Убираем его из карты
    M.Layers.Remove(idx)