Описание функции
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()