TargetSelection property (Layer)

Возвращает для данного слоя объект TargetSelection для работы с мишенью.

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

Layer

Синтаксис:

Visual Basic:

Property TargetSelection As TargetSelection

read-only

Описание:

Мишень - это отдельный от выделения набор объектов слоя. В операциях, где одна группа объектов действует на другую, мишень играет роль «того, над чем работают»: так ее используют JoinSelectedElements (ID и стиль объединенного объекта достаются объекту из мишени) и методы разрезания с Options = 1.

Свойство отдает живой объект, а не копию: два обращения подряд дают один и тот же объект. Набор ведут методами AddElem, RemoveElem, Invert и Clear, а метод CopyFromSelection переносит в мишень текущее выделение слоя. Ключи лежат в ElementKeys.

В случае неудачи возникает исключение с одним из следующих кодов:

Код

Описание

513

Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.

Пример:

Sub Layer_TargetSelection
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set Keys = L.ElementKeys
Set T = L.TargetSelection
T.Clear
'Кладем в мишень два первых объекта слоя
T.AddElem Keys.Item(1)
T.AddElem Keys.Item(2)
S = "в мишени: " & T.ElementKeys.Count
'Переносим в мишень текущее выделение
L.Selection.Clear
L.Selection.AddElem Keys.Item(5)
T.CopyFromSelection
S = S & vbCrLf & "после CopyFromSelection: " & T.ElementKeys.Count
'Оставляем мишень пустой
T.Clear
L.Selection.Clear
S = S & vbCrLf & "после Clear: " & T.ElementKeys.Count
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_TargetSelection():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    keys = L.ElementKeys
    t = L.TargetSelection
    t.Clear()
    # Кладем в мишень два первых объекта слоя
    t.AddElem(keys.Item(1))
    t.AddElem(keys.Item(2))
    print("в мишени:", t.ElementKeys.Count)
    # Переносим в мишень текущее выделение
    L.Selection.Clear()
    L.Selection.AddElem(keys.Item(5))
    t.CopyFromSelection()
    print("после CopyFromSelection:", t.ElementKeys.Count)
    # Оставляем мишень пустой
    t.Clear()
    L.Selection.Clear()
    print("после Clear:", t.ElementKeys.Count)