Определяет, что слой является слоем в памяти.
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 SubPython:
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)