Возвращает код последней ошибки, связанной с данным объектом слоя.
Visual Basic:
Function GetLastErrorCode() As Long
На данный момент далеко не все неудачные операции со слоем устанавливают код ошибки.
Код читают сразу после той операции, которая интересует: следующий вызов либо сбрасывает код в 0, либо оставляет прежний, причем это не зависит от того, удался он или нет. Само чтение кода его не меняет, а 0 стоит и после неудач, которые код не устанавливают, поэтому признаком успеха он не служит.
Список кодов не исчерпывающий: например, символ с несуществующим типом или режимом дает код -16. Словесное описание любого кода дает метод GetLastErrorString.
Константа
Описание
0
Ошибки нет
-1
Общая ошибка
-2
Ошибка преобразования координат
-3
Несоответствие пространственному фильтру
-4
Неверный графический тип
-5
Пустой объект
-6
Недостаточно памяти
-7
Таймаут при попытке записи
-8
Таймаут при попытке чтения
-9
Редактор слоя занят другим процессом
-10
Редактор занят локальной версией
-11
Нет лицензии на редактирование
-12
Ошибка записи объета в слой
Символ несуществующего типа в слой не добавляется, и метод показывает код этой неудачи.
Visual Basic:
Sub Layer_GetLastErrorCode 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle 'Неудачная операция: тип 999 в слое не заведен ID = L.AddSymbol(R.Xmax + 1, R.Ymin, 999, 1) S = "AddSymbol = " & ID S = S & vbCrLf & "Код последней ошибки: " & L.GetLastErrorCode S = S & vbCrLf & "Описание: " & L.GetLastErrorString MsgBox S End SubPython:
import zulu def Macro_Layer_GetLastErrorCode(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active R = L.GetBoundsRectangle() # Неудачная операция: тип 999 в слое не заведен print("AddSymbol =", L.AddSymbol(R.Xmax + 1, R.Ymin, 999, 1)) print("Код последней ошибки:", L.GetLastErrorCode()) print("Описание:", L.GetLastErrorString())