DeleteElement method (Layer)

Удаляет из слоя объект с указанным ID.

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

Layer

Синтаксис:

Visual Basic:

Function DeleteElement(ElemID As Long) As Long

ElemID - ID удаляемого элемента.

Описание:

Если удалось найти и удалить элемент с заданным ключом, метод вернет 0, в противном случае метод вернет -1.

-1 возвращается, когда объекта с таким ключом в слое нет: при повторном удалении того же объекта, при заведомо отсутствующем ключе, а также при значениях 0 и -1.

Ключ удалённого объекта остаётся в группе (Selection) и в мишени (TargetSelection) слоя, если он там был.

Пример:

Visual Basic:

Sub Layer_DeleteElement
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set R = L.GetBoundsRectangle
D = (R.Xmax - R.Xmin) / 10
'Добавляем правее слоя простую линию
Set PL = CreateObject("ZuluLib.PolyLine")
PL.AddPoint R.Xmax + D, R.Ymin
PL.AddPoint R.Xmax + 2 * D, R.Ymin
ElemID = L.AddPolyLine(PL, CreateObject("ZuluLib.ElemStyle"), -1, -1)
'Удаляем ее и пробуем удалить еще раз
S = "Добавлена линия " & ElemID
S = S & vbCrLf & "DeleteElement(" & ElemID & ") = " & L.DeleteElement(ElemID)
S = S & vbCrLf & "повторно = " & L.DeleteElement(ElemID)
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_DeleteElement():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    R = L.GetBoundsRectangle()
    d = (R.Xmax - R.Xmin) / 10
    # Добавляем правее слоя простую линию
    PL = zulu.PolyLine()
    PL.AddPoint(R.Xmax + d, R.Ymin)
    PL.AddPoint(R.Xmax + 2 * d, R.Ymin)
    elem_id = L.AddPolyLine(PL, zulu.ElemStyle(), -1, -1)
    # Удаляем ее и пробуем удалить еще раз
    print("Добавлена линия", elem_id)
    print("DeleteElement(", elem_id, ") =", L.DeleteElement(elem_id))
    print("повторно =", L.DeleteElement(elem_id))