Возвращает текст последней ошибки, связанной с данным объектом слоя.
Visual Basic:
Function GetLastErrorString() As String
Текст соответствует коду, который возвращает метод GetLastErrorCode:
Код
Текст
0
OK
-1
Common error
-2
Coordinates transformation failed
-3
Spatial filter
-4
Wrong graphic type
-5
Empty buffer
-6
Out of memory
-7
Failed to start edit layer
-8
Failed to start read layer
-9
Invalid editor handle
-10
Editor is busy
-11
No license for editing
-12
Failed to write object
-13
Failed to write object. Disk full
-14
Wrong Type
-15
Wrong Mode
-16
Wrong Type or Mode
-17
Coordinates transformation failed
-18
Place for symbol is busy
-19
Wrong symbol ID
-20
Write to file failed
Успешная операция сбрасывает код ошибки в 0, и метод возвращает OK. Неудачная операция записывает свой код, только если после последней успешной операции ошибок ещё не было, поэтому метод возвращает текст первой из них.
Код и текст ошибки хранятся в каждом объекте Layer отдельно: другой объект, открытый для того же слоя, их не видит. Не всякая неудачная операция записывает код: например, DeleteElement для несуществующего ID возвращает -1, а код остаётся 0.
Visual Basic:
Sub Layer_GetLastErrorString 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle 'Пытаемся добавить символ несуществующего типа If L.AddSymbol(R.Xmax, R.Ymax, 99999, 1) = -1 Then MsgBox "Код ошибки: " & L.GetLastErrorCode & vbCrLf & _ "Текст ошибки: " & L.GetLastErrorString End If End SubPython:
import zulu def Macro_Layer_GetLastErrorString(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active R = L.GetBoundsRectangle() # Пытаемся добавить символ несуществующего типа if L.AddSymbol(R.Xmax, R.Ymax, 99999, 1) == -1: print("Код ошибки:", L.GetLastErrorCode()) print("Текст ошибки:", L.GetLastErrorString())