Предлагаю создавать временные слои с помощью макросов. Например:
Код |
---|
Sub CreateTempLayerWithTrigon()
Set zulutools_obj = CreateObject("ZuluLib.ZuluTools")
Set polyline_obj = CreateObject("ZuluLib.PolyLine")
Set elem_style_obj = CreateObject("ZuluLib.ElemStyle")
Set tmp_layer = zulutools_obj.LayerCreateInMemory("test_layer")
Application.MessageBox "Имя временного слоя: " & tmp_layer, "Информация", vbOk
' Имя временного слоя: $in_memory$test_layer
polyline_obj.AddPoint 0.0, 500.0
polyline_obj.AddPoint 500, 0.0
polyline_obj.AddPoint 500.0, 500.0
polyline_obj.AddPoint 0.0, 500.0
elem_style_obj.LineColor = &h0000FF
elem_style_obj.LineStyle = 6
elem_style_obj.LineWidth = 2
If tmp_layer.AddPolyLine(polyline_obj, elem_style_obj, 1, 1) <> -1 Then
Application.MessageBox "Во временный слой помещён красный треугольник", "Информация", vbOk
End If
Application.MessageBox "Количество объектов в слое: " & tmp_layer.ElementKeys.Count, "Информация", vbOk
' Количество объектов в слое: 1
End Sub |
В данном случае, при обращении к этой подпроцедуре в памяти будет создан временный слой, а уже в слое нарисован треугольник (использование ломаных линий взято для примера).
На практике можно заметить, что количество объектов в слое увеличилось на единицу (при условии, что ломаная линия добавилась в слой). Следовательно, изменения в слое происходят, и в слой можно заносить информацию.