Инициализирует режим буферизованной записи объектов в слой.
Visual Basic:
Function StartSequentialWriteMode() As Boolean
Режим буферизованной записи предназначен для последовательной записи большого числа объектов с высокой скоростью. Этот режим удобно использовать при написании собственных конверторов в формат Zulu, при перезаписи большого числа объектов из одного слоя в другой и т.д.
При добавлении объектов в этом режиме ядром системы не выполняется ряд внутренних операций по индексации добавляемых объектов, что существенно повышает скорость добавления объектов, но делает невозможным работу с данными слоя в полном объеме вплоть до завершения режима. Поэтому в режиме буферизованной записи не допускаются никакие операции со слоем, кроме операций по добавлению объектов в слой: AddContour, AddElement, AddElementEx, AddEnumElement, AddPolyContour, AddPolyLine, AddPolyPolyLine, AddSimpleSymbol, AddSymbol, AddText.
Инициированный методом StartSequentialWriteMode режим записи обязательно должен быть завершен вызовом метода FinishSequentialWriteMode. После завершения режима буферизованной записи состояние слоя соответствует обычному режиму, в котором разрешены все операции.
'Создаем новый слой и переписываем в него все объекты другого слоя Private Sub CopyLayerGraphics(SrcLayer As Layer, DestLayerName As String, DestLayerTitle As String) Dim DestLayer As Layer Dim En As IZEnumElements Dim Tools As ZuluTools Set Tools = New ZuluTools 'Создаем новый слой Tools.LayerCreate DestLayerName, DestLayerTitle, eMixedLayer 'Открываем созданный слой Set DestLayer = New Layer DestLayer.Open DestLayerName 'Начинаем режим буферизованной записи DestLayer.StartSequentialWriteMode 'Получаем итератор для слоя источника Set En = SrcLayer.EnumElements En.MoveFirst 'Встали на первый элемент Do If En.IsEOF Then Exit Do 'Если элементы кончились, выходим 'Записываем очередной объект в новый слой 'без проверки на уникальность ключа, т.к. 'в качестве ключа берем ключ слоя источника 'а до начала записи слой для записи объектов не 'содержал DestLayer.AddEnumElement En, En.ElemID, 0 En.MoveNext 'Встаем на следующий элемент Loop 'Завершаем режим буферизованной записи DestLayer.FinishSequentialWriteMode End Sub