EraseSelection method (Layer)

Удаляет из слоя все объекты, входящие в группу.

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

Layer

Синтаксис:

Visual Basic:

Function EraseSelection() As Long

Описание:

Группа слоя — это его выделенные объекты, свойство Selection. Удаляются только они; мишень (TargetSelection) метод не трогает. Ключи, которых в слое нет, пропускаются.

После вызова группа становится пустой. Метод возвращает 0, в том числе когда группа пуста и удалять нечего.

Пример:

Visual Basic:

Sub Layer_EraseSelection
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set R = L.GetBoundsRectangle
D = (R.Xmax - R.Xmin) / 10
Set St = CreateObject("ZuluLib.ElemStyle")
'Добавляем правее слоя две простые линии и выделяем их
L.Selection.Clear
For i = 1 To 2
  Set PL = CreateObject("ZuluLib.PolyLine")
  PL.AddPoint R.Xmax + D, R.Ymin + i * D
  PL.AddPoint R.Xmax + 2 * D, R.Ymin + i * D
  L.Selection.AddElem L.AddPolyLine(PL, St, -1, -1)
Next
S = "В группе " & L.Selection.ElementKeys.Count & " объектов"
'Удаляем группу
S = S & vbCrLf & "EraseSelection = " & L.EraseSelection
S = S & vbCrLf & "В группе осталось " & L.Selection.ElementKeys.Count & " объектов"
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_EraseSelection():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    R = L.GetBoundsRectangle()
    d = (R.Xmax - R.Xmin) / 10
    St = zulu.ElemStyle()
    # Добавляем правее слоя две простые линии и выделяем их
    L.Selection.Clear()
    for i in (1, 2):
        PL = zulu.PolyLine()
        PL.AddPoint(R.Xmax + d, R.Ymin + i * d)
        PL.AddPoint(R.Xmax + 2 * d, R.Ymin + i * d)
        L.Selection.AddElem(L.AddPolyLine(PL, St, -1, -1))
    print("В группе", L.Selection.ElementKeys.Count, "объектов")
    # Удаляем группу
    print("EraseSelection =", L.EraseSelection())
    print("В группе осталось", L.Selection.ElementKeys.Count, "объектов")