<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Работа OnClose]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Работа OnClose форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 08 Jun 2026 07:21:49 +0300</pubDate>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82532/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_5wGs2aim" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a>, <br />В руководстве пользователя QLua написано:<br /><br />====quote====<br /><B>IsWindowClosed</B><br /><br />Функция предназначена для определения состояния окна таблицы «t_id». <br /><br />Вызов IsWindowClosed внутри функции обратного вызова, заданной с помощью SetTableNotificationCallback(), всегда вернет «false».<br /><br />Формат вызова: <br /><br />BOOLEAN IsWindowClosed(NUMBER t_id)<br /><br />Функция возвращает: <br /><br />«false» – если окно таблицы «t_id» открыто в терминале; <br /><B>«true» – если окно таблицы «t_id» закрыто пользователем вручную.</B> Окно может быть открыто повторно с помощью функции CreateWindow; <br />«nil» – если таблица «t_id» не существует (указан несуществующий / некорректный идентификатор или таблица удалена функцией DestroyTable).<br /><br />=============<br />Но IsWindowClosed возвращает true для окна, которое не было закрыто пользователем вручную, при закрытии QUIK, загрузки настроек из wnd-файла, замены инструментов, что не соответствует документации. <br />
			<i>21.05.2026 16:59:07, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82532/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82532/topic9566/</guid>
			<pubDate>Thu, 21 May 2026 16:59:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82518/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Поэтому мы и зарегистрировали пожелание от пользователя выше, чтобы можно было понять закрывается ли терминал в данный момент при помощи флагов на функции OnClose. <br />
			<i>20.05.2026 13:04:37, Oleg Kuzembaev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82518/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82518/topic9566/</guid>
			<pubDate>Wed, 20 May 2026 13:04:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82516/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_D8pv1Yg6" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a> написал:<br />можно получать еще колбек о закрытии терминала и если последний не был получен, то с высокой долей вероятности окно было закрыто пользователем.<br />=============<br />OnClose вызывается после закрытия всех окон. Таким образом, отсутствие OnClose ни о чём не говорит. <br />
			<i>20.05.2026 10:56:34, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82516/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82516/topic9566/</guid>
			<pubDate>Wed, 20 May 2026 10:56:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82515/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_DCzDBN3U" href="/user/17142/" bx-tooltip-user-id="17142">Йцукен</a>, здравствуйте.<br /><br />Действительно, такой возможности в QLua - нет. Как вариант, можно получать еще колбек о закрытии терминала и если последний не был получен, то с высокой долей вероятности окно было закрыто пользователем. <br />
			<i>20.05.2026 08:42:26, Oleg Kuzembaev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82515/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82515/topic9566/</guid>
			<pubDate>Wed, 20 May 2026 08:42:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82510/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_dnIVkRjU" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a> написал:<br />Понять закрыто ли конкретное окно можно с помощью функции IsWindowClosed<br />=============<br />Это не даёт информации о том, закрыто ли окно пользователем вручную, либо же окно уничтожено при закрытии терминала. <br />
			<i>19.05.2026 21:05:24, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82510/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82510/topic9566/</guid>
			<pubDate>Tue, 19 May 2026 21:05:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82484/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_TmnCgzIl" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>,<br /> <br /> Ваше пожелание зарегистрировано. &nbsp;Мы постараемся рассмотреть его и &nbsp;сообщить Вам результаты анализа. Впоследствии, по результатам анализа, &nbsp;будет приниматься решение о реализации пожелания в будущих версиях ПО. <br />
			<i>14.05.2026 15:17:11, Oleg Kuzembaev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82484/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82484/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 15:17:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82483/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QjLXEbdW" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a> написал:<br /><noindex><a href="/user/3132/" target="_blank" rel="nofollow">Nikolay</a></noindex>, благодарим вас за уточнение. <br /><br />Мы можем зарегистрировать пожелание на доработку будущих версий. Подскажите, будем регистрировать?<br />=============<br />Регистрируйте. <br />
			<i>14.05.2026 14:49:57, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82483/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82483/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 14:49:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82482/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_Xm3s5UBr" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a>, благодарим вас за уточнение. <br /><br />Мы можем зарегистрировать пожелание на доработку будущих версий. Подскажите, будем регистрировать? <br />
			<i>14.05.2026 14:39:02, Oleg Kuzembaev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82482/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82482/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 14:39:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82481/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_GfyH819e" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a> написал:<br />Добрый день.<br /><br />Функция OnClose будет возвращена перед самым закрытием Рабочего места, но уже после того как закрыты все таблицы и окна. Таков дизайн этой функции.<br />Понять закрыто ли конкретное окно можно с помощью функции IsWindowClosed, что вам удалось продемонстрировать в изначальном сообщении. <br />Т.о. колбек OnClose приходит лишь при полном закрытии приложения терминала.<br />=============<br />Сообщение об аварийной ситуации на борту приходит к пассажирам самолета <S>перед самым закрытием Рабочего места </S> за секунду до встречи с землёй<br /><br /><br />у скриптов уже украли окна. Судя по всему, уже не приходят колбеки. Что еще недоступно в краткий миг последнего метра над уровнем земли? <br />
			<i>14.05.2026 13:10:37, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82481/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82481/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 13:10:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82479/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_WxLXNpA3" href="/user/16979/" bx-tooltip-user-id="16979">Oleg Kuzembaev</a> написал:<br />Добрый день.<br /><br />Функция OnClose будет возвращена перед самым закрытием Рабочего места, но уже после того как закрыты все таблицы и окна. Таков дизайн этой функции.<br />Понять закрыто ли конкретное окно можно с помощью функции IsWindowClosed, что вам удалось продемонстрировать в изначальном сообщении. <br />Т.о. колбек OnClose приходит лишь при полном закрытии приложения терминала.<br />=============<br />Если он будет вызван после, то этот колбек бесполезен.<br /><br />В итоге понять, что терминал закрывается, и необходимо изменить алгоритм обработки окон, таблиц, графиков из main - нельзя. Поэтому и требуется флаг, сигнализирующий о начале процесса закрытия терминала. <br />
			<i>14.05.2026 10:56:13, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82479/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82479/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 10:56:13 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82477/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день.<br /><br />Функция OnClose будет возвращена перед самым закрытием Рабочего места, но уже после того как закрыты все таблицы и окна. Таков дизайн этой функции.<br />Понять закрыто ли конкретное окно можно с помощью функции IsWindowClosed, что вам удалось продемонстрировать в изначальном сообщении. <br />Т.о. колбек OnClose приходит лишь при полном закрытии приложения терминала. <br />
			<i>14.05.2026 10:31:10, Oleg Kuzembaev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82477/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82477/topic9566/</guid>
			<pubDate>Thu, 14 May 2026 10:31:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82462/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			до кучи...<br />В документации сказано:
====code====
<pre>OnClose

Функция вызывается перед закрытием терминала QUIK и при выгрузке файла 
qlua.dll. 
Формат вызова: 
OnClose()


Под выгрузкой файла qlua.dll подразумевается отключение плагина QLua в окне 
«Версии компонентов и плагинов» (см. п. 1.9. Раздела 1 Руководства пользователя 
QUIK).</pre>
=============
Но если &nbsp;работает несколько скриптов, <br />то файл qlua.dll , если это dll ,<br />не будет выгружаться, <br />если есть хотя один работающий скрипт. <br />----------------------- &nbsp;<br />Таким образом, этот колбек вызывается либо коггда терминал закрывается,<br /> либо когда останавливается последний скрипт.<br />что не так?<br /> &nbsp; <br />
			<i>12.05.2026 18:32:21, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82462/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82462/topic9566/</guid>
			<pubDate>Tue, 12 May 2026 18:32:21 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Работа OnClose</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message82461/topic9566/">Работа OnClose</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть колбек OnClose. Казалось бы, он должен помочь понять, что терминал остановлен. Но явно что-то пошло не так.<br /><br />Берем простой скрипт. Закрываем терминал через &quot;крестик&quot;.<br /><br />Ожидание - 1. OnClose, сбрасываем флаг. 2. выходим из main. <br /><span class="bx-font" style="color:#272c31"><span class="bx-font" style="font-family:FiraCode NF, Consolas, Courier New, monospace"><span class="bx-font" style="font-size:;">
====code====
<pre>local sleep&nbsp;&nbsp;= _G.sleep
local isRun&nbsp;&nbsp;= true
local AddLabel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= _G.AddLabel
local GetLabelParams&nbsp;&nbsp;&nbsp;&nbsp;= _G.GetLabelParams
local logFile

local function log_tostring(...)
&nbsp;&nbsp;&nbsp;&nbsp;local n = select('#', ...)
&nbsp;&nbsp;&nbsp;&nbsp;if n == 1 then
&nbsp;&nbsp;&nbsp;&nbsp;return tostring(select(1, ...))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;local t = {}
&nbsp;&nbsp;&nbsp;&nbsp;for i = 1, n do
&nbsp;&nbsp;&nbsp;&nbsp;t&#91;#t + 1&#93; = tostring((select(i, ...)))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;return table.concat(t, " ")
end

local function log(...)
&nbsp;&nbsp;&nbsp;&nbsp;if logFile==nil then return end
&nbsp;&nbsp;&nbsp;&nbsp;logFile:write(tostring(os.date("%c",os.time())).." "..log_tostring(...).."&#92;n");
&nbsp;&nbsp;&nbsp;&nbsp;logFile:flush();
end

function _G.OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;isRun = false
&nbsp;&nbsp;&nbsp;&nbsp;log("Script Stoped")
&nbsp;&nbsp;&nbsp;&nbsp;if logFile then logFile:close() end
end

function _G.OnClose()
&nbsp;&nbsp;&nbsp;&nbsp;isRun = false
&nbsp;&nbsp;&nbsp;&nbsp;log("Script OnClose")
&nbsp;&nbsp;&nbsp;&nbsp;if logFile then logFile:close() end
end

function _G.main()

&nbsp;&nbsp;&nbsp;&nbsp;logFile = io.open(_G.getScriptPath().."&#92;&#92;labels_test.txt", "w")

&nbsp;&nbsp;&nbsp;&nbsp;local t_id = _G.AllocTable()
&nbsp;&nbsp;&nbsp;&nbsp;_G.AddColumn(t_id, 1, 'test', true, _G.QTABLE_STRING_TYPE, 20)
&nbsp;&nbsp;&nbsp;&nbsp;_G.CreateWindow(t_id)

&nbsp;&nbsp;&nbsp;&nbsp;local tag = 'virt_test'
&nbsp;&nbsp;&nbsp;&nbsp;local label_params = {}
&nbsp;&nbsp;&nbsp;&nbsp;label_params.YVALUE = 324
&nbsp;&nbsp;&nbsp;&nbsp;label_params.TEXT = 'TEST&nbsp;&nbsp;&nbsp;&nbsp;|||||||||||||||||||||||||||||||||||||||||||||'
&nbsp;&nbsp;&nbsp;&nbsp;label_params.HINT = 'Еще текст'
&nbsp;&nbsp;&nbsp;&nbsp;label_params.DATE = 20260512
&nbsp;&nbsp;&nbsp;&nbsp;label_params.TIME = 135000
&nbsp;&nbsp;&nbsp;&nbsp;label_params.FONT_FACE_NAME = 'Arial'
&nbsp;&nbsp;&nbsp;&nbsp;label_params.ALIGNMENT = 'RIGHT'
&nbsp;&nbsp;&nbsp;&nbsp;label_params.FONT_HEIGHT&nbsp;&nbsp;&nbsp;&nbsp;= 10
&nbsp;&nbsp;&nbsp;&nbsp;label_params.TRANSPARENT_BACKGROUND&nbsp;&nbsp;&nbsp;&nbsp;= 1
&nbsp;&nbsp;&nbsp;&nbsp;local data = {price = 324}
&nbsp;&nbsp;&nbsp;&nbsp;local l_id = AddLabel(tag, label_params)
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1000)
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;while isRun do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local i = 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while isRun and i &#60; 10 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label_params = GetLabelParams(tag, l_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if label_params then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data.price = tonumber(label_params.yvalue) or 0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log(os.clock(), i, 'IsWindowClosed', tostring(_G.IsWindowClosed(t_id)), 'label_params', tostring(label_params), tag, 'l_id', l_id, tostring(data.price))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i+1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log(os.clock(), 'sleep')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;&nbsp;&nbsp;end
end</pre>
=============
</span></span></span><br />Выводит метку на график, создаём окно. Далее выводим данные метки с графика и закрыто ли окно. Смотрим лог:<br /><br />Tue May 12 15:07:59 2026 30.832 sleep<br />Tue May 12 15:07:59 2026 30.946 1 IsWindowClosed false label_params table: 00000205F30168A0 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 2 IsWindowClosed false label_params table: 00000205F3016BA0 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 3 IsWindowClosed false label_params table: 00000205F3017BA0 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 4 IsWindowClosed false label_params table: 00000205F3017160 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 5 IsWindowClosed false label_params table: 00000205F3018020 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 6 IsWindowClosed false label_params table: 00000205F30171A0 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 7 IsWindowClosed false label_params table: 00000205F30171E0 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.947 8 IsWindowClosed false label_params table: 00000205F3017F20 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.948 9 IsWindowClosed false label_params table: 00000205F3017A60 virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 30.948 sleep<br /><br />Окно ещё не уничтожено, но графика уже нет и данные метки не получены.<br />Tue May 12 15:07:59 2026 31.061 1 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 2 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 3 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 4 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 5 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 6 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 7 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 8 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 9 IsWindowClosed false label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:07:59 2026 31.061 sleep<br /><br />А здесь уже и окна нет<br />Tue May 12 15:08:00 2026 31.173 1 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 2 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 3 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 4 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 5 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 6 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 7 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 8 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 9 IsWindowClosed true label_params nil virt_test l_id 13.0 324.0<br />Tue May 12 15:08:00 2026 31.173 sleep<br /><br />Только сейчас OnClose<br />Tue May 12 15:08:00 2026 Script OnClose<br /><br />Сама по себе схема, вроде, корректна, если бы OnClose мог выполнится параллельно, не обращая внимания на работу main. Но это не так. В итоге OnClose вызывается когда уже уничтожено окно скрипта и нет графика. Т.е. некоторое время (а точнее пока не вызовется C функция) у нас есть подвешенное состояние - мы не знаем окно, график закрыты пользователем или нет.<br />В итоге, если в это время считаем метку, а её нет, можем принять не верное решение. Аналогично и по окну скрипта.<br /><br />Что хотелось бы: вместо колбека иметь глобальный флаг, состояние или иное, сигнализирующее, что терминал закрывается. При этом он должен быть установлен быстро, перед уничтожением объектов терминала. Аналогия из электротехники - логическое 1 или 0 на контакте. Если 0, то уже всё, логика работы совершенно иная.<br /><br />Текущая же реализация может работать, если бы OnClose вызывался до уничтожения объектов. <br />
			<i>12.05.2026 15:17:50, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message82461/topic9566/</link>
			<guid>http://forum.quik.ru/messages/forum10/message82461/topic9566/</guid>
			<pubDate>Tue, 12 May 2026 15:17:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
