Потребовалось кое-что сделать при событии закрытия терминала.
Но OnClose() и OnStop(flag) не выводит системные сообщения и не выполняет код внутри.
Если отключить qlua.dll в окне «Версии компонентов и плагинов», всё работает по инструкции.
Как можно объяснить такое поведение?
Но OnClose() и OnStop(flag) не выводит системные сообщения и не выполняет код внутри.
Если отключить qlua.dll в окне «Версии компонентов и плагинов», всё работает по инструкции.
Как можно объяснить такое поведение?
Код |
---|
function OnInit() -- Функция вызывается терминалом QUIK перед вызовом функции main(). is_run = true return end -- выход из функции: OnInit() function main() -- Функция, реализующая основной поток выполнения в скрипте. Для ее выполнения терминал QUIK создает отдельный поток. while is_run do -- повторяющийся цикл, пока is_run = true sleep(1000) end -- выход из цикла: повторяющийся цикл, пока is_run = true return end -- выход из функции: main() function OnClose() -- Функция вызывается перед закрытием терминала QUIK и при выгрузке файла qlua.dll. -- Под выгрузкой файла qlua.dll подразумевается отключение плагина QLua -- в окне «Версии компонентов и плагинов» (см. п. 1.9. Раздела 1 Руководства -- пользователя QUIK). message("OnCl ose="..tostring(1),1) -- отладка скрипта с выводом системного сообщения end function OnStop(flag) -- Функция вызывается терминалом QUIK при остановке скрипта из диалога управления и при закрытии терминала QUIK. -- При остановке или удалении работающего скрипта Lua из диалога управления «Доступные -- скрипты» параметр вызова flag принимает значение «1». При закрытии терминала QUIK – -- значение «2». message("OnStop flag="..tostring(flag),1) -- отладка скрипта с выводом системного сообщения is_run = false return 5000 end |