UserLabel property (Layer)

Возвращает/устанавливает статус вывода надписей пользователя.

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

Layer

Синтаксис:

Visual Basic:

Property UserLabel As Boolean

Описание:

Пользователь может «перехватывать» вывод надписей и вместо вывода информации из семантической БД, для которой данная надпись создавалась, выводить свои пользовательские надписи. При этом стиль вывода надписей остается прежний, изменяется только текст надписи. Для этого необходимо установить данное свойство в значение True. После установки при любом перестроении карты будет возникать событие OnDrawUserLabels, в обработчик которого можно поставить вывод собственных надписей.

У слоев из поставки свойство исходно равно False. В файлах слоя оно не сохраняется и действует только до закрытия слоя: при следующем открытии свойство снова False.

Пока свойство равно True, штатные надписи слоя на карту не выводятся - их место занимает то, что нарисует обработчик события. Если обработчика нет, надписи просто пропадают с карты при ближайшей перерисовке и возвращаются, когда свойству возвращают значение False.

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

Код

Описание

513

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

Пример:

Пример включает перехват надписей слоя и возвращает слой в прежнее состояние.

Visual Basic:

Sub Layer_UserLabel
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
S = "Было: " & L.UserLabel
'Перехватываем вывод надписей слоя
L.UserLabel = True
S = S & vbCrLf & "после включения: " & L.UserLabel
'Возвращаем как было
L.UserLabel = False
S = S & vbCrLf & "после выключения: " & L.UserLabel
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_UserLabel():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    print("Было:", L.UserLabel)
    # Перехватываем вывод надписей слоя
    L.UserLabel = True
    print("после включения:", L.UserLabel)
    # Возвращаем как было
    L.UserLabel = False
    print("после выключения:", L.UserLabel)