Удаляет из слоя объект с указанным ID.
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 SubPython:
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))