Описание функции


BindCallback

Связывает событие с функцией обратного вызова

BindCallback(Event.i, *CallbackAddress)

Параметры

Event.i Событие, одно из:
    #Event_Print - выводит информацию с помощью внутренней функции Print()
    #Event_Message - выводит предупреждение
    #Event_Error - выводит сообщение об ошибке
*CallbackAddress Указатель на функцию обратного вызова @Callback()

Пример

; STARGATE
; https://www.purebasic.fr/english/viewtopic.php?t=76279
XIncludeFile "../Library/Lizard.pbi"


; Lizard всегда должен быть инициализирован до выполнения каких либо операций с ним.
If Lizard::Initialize("../Library") ; Укаэите путь к папке с Lizard.dll.
    Debug "Lizard был инициализирован. Версия " + Lizard::Version()
Else
    Debug "Не удалось выполнить инициализацию Lizard"
    End
EndIf


Procedure Callback_Print(Text.s) ; Задаёт функцию обратного вызова для "Print()" с переменными "Text.s"
    Debug "Вывод: " + Text
EndProcedure

Procedure Callback_Message(Text.s, SymbolName.s, ErrorName.s) ; Задаёт функцию обратного вызова для предупреждений
    Debug "Предупреждение: " + SymbolName + "." + ErrorName + " >>> " + Text
EndProcedure

Procedure Callback_Error(Text.s) ; Задаёт функцию обратного вызова для ошибок с переменной "Text.s"
    Debug "Ошибка: " + Text
EndProcedure


; Связывает (забиндить) событие с функцией обратного вызова
Lizard::BindCallback(Lizard::#Event_Print, @Callback_Print())
Lizard::BindCallback(Lizard::#Event_Message, @Callback_Message())
Lizard::BindCallback(Lizard::#Event_Error, @Callback_Error())


Debug Lizard::Evaluate("Print(1, var, 2^100)") ; Внутренняя функция Print() использует Callback_Print() для вывода.
Debug Lizard::Evaluate("{1, 2, 3}[4]") ; Предупреждающие сообщения отправляются в функцию Callback_Message().
Debug Lizard::Evaluate("2 a") ; Ошибки отправляются в функцию Callback_Error().

; Завершение Lizard.
Lizard::Terminate()