Потребовалось кое-что сделать при событии закрытия терминала.
Но 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
|