<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: onstop и колбек пользовательского окна]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме onstop и колбек пользовательского окна форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 20 May 2026 08:20:28 +0300</pubDate>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81212/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ZYVgcTZD" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />поменять местами во времени реакцию на колбеки qtable_close и onstop, чтобы они обрабатывались в нормальном порядке. Именно в том, как они реально возникли.<br />=============<br />Первым должен быть OnClose, а после - QTABLE_CLOSE. <br />
			<i>08.02.2026 08:52:00, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81212/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81212/topic9456/</guid>
			<pubDate>Sun, 08 Feb 2026 08:52:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81208/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_YYDbH3jp" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16750/" target="_blank" rel="nofollow">tohoki</a></noindex> написал:<br />Когда пользователь закрывает терминал при запущенном скрипте, завершать работу скрипта не нужно, она должна продолжаться автоматом при следующем запуске терминала.<br />=============<br /> &nbsp;
====code====
<pre>&nbsp;&nbsp; while&nbsp;&nbsp;_RUN_&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp; ---Тело основного цикла скрипта -- 
 end 
 if&nbsp;&nbsp; TBL_QUIK&nbsp;&nbsp;then&nbsp;&nbsp;&nbsp;&nbsp;-- Если используются таблицы QUIK 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- #### Задержка sleep нужна чтобы установился признак запуска скрипта при перезапуске QUIK.&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Иначе при перезапуске QUIK не будет перезапущен скрипт.-- 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- При нормальном завершении QUIK, если есть таблицы QUIK, они удаляются (и вызываются коллбеки QTABLE_CLOSE) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Если при этом нет задержки, то скрипт завершается и не выставляется признак необходимости его перезапуска 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- при запуске QUIK. Признак TBL_QUIK&nbsp;&nbsp;устанавливается в основной пользовательской таблице QUIK.&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Длительность задержки выбрана экспериментально. 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep ( 1000 ) 
 end&nbsp;&nbsp;

&nbsp;&nbsp;</pre>
=============
 <br />=============<br />Идея понятна.<br /><br />поменять местами во времени реакцию на колбеки qtable_close и onstop, чтобы они обрабатывались в нормальном порядке. Именно в том, как они реально возникли. Ну как должно быть у нормальных людей.<br /><br />Хорошая мысль и при этом простая. &nbsp; <br />
			<i>07.02.2026 22:15:18, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81208/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81208/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 22:15:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81206/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_7KOg8AK4" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />Когда пользователь закрывает терминал при запущенном скрипте, завершать работу скрипта не нужно, она должна продолжаться автоматом при следующем запуске терминала.<br />=============<br />
====code====
<pre>
while _RUN_ do
&nbsp;&nbsp;&nbsp;&nbsp;---Тело основного цикла скрипта --
end
if&nbsp;&nbsp;TBL_QUIK then&nbsp;&nbsp;-- Если используются таблицы QUIK
&nbsp;&nbsp;&nbsp;&nbsp; -- #### Задержка sleep нужна чтобы установился признак запуска скрипта при перезапуске QUIK. 
&nbsp;&nbsp;&nbsp;&nbsp; -- Иначе при перезапуске QUIK не будет перезапущен скрипт.--
&nbsp;&nbsp;&nbsp;&nbsp; -- При нормальном завершении QUIK, если есть таблицы QUIK, они удаляются (и вызываются коллбеки QTABLE_CLOSE)
&nbsp;&nbsp;&nbsp;&nbsp; -- Если при этом нет задержки, то скрипт завершается и не выставляется признак необходимости его перезапуска
&nbsp;&nbsp;&nbsp;&nbsp; -- при запуске QUIK. Признак TBL_QUIK&nbsp;&nbsp;устанавливается в основной пользовательской таблице QUIK. 
&nbsp;&nbsp;&nbsp;&nbsp; -- Длительность задержки выбрана экспериментально.
&nbsp;&nbsp;&nbsp;&nbsp; sleep(1000) 
end 

</pre>
============= <br />
			<i>07.02.2026 19:36:11, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81206/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81206/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 19:36:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81205/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Всем спасибо я подожду, возможно техподдержка этого терминала сможет мне ответить<br /><br /><br /><br />специально для Nikolz:<br />Не нужно ничего больше писать. Большое тебе спасибо. <br />
			<i>07.02.2026 16:34:36, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81205/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81205/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 16:34:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81204/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_VTZyMywS" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br /> <br />====quote====<br /><br />=============<br /><br />Закрытие главного окна текстового редактора, майкрософт ворда или самомго терминала квик приводит к прекращению работы программы, а не к продолжению ее работы втихую. Это нормально и привычно везде и всюду, в Windows, Linux и даже, прости господи, macos. Но не в гордости российского программирования от ARQA.<br /><br /><br /><br />=============<br />Вы путаете кислое с зеленым.<br />---------------------------<br />Окно в редакторе текста - это область работы самого приложения. аналогично приложениям windows или Linux.<br />--------------------<br />Но в самом приложении пользователь может и делает кучу окон которые открывает и закрывает по надобности.<br />-----------------------<br />Таблица В скрипте - это не главное окно скрипта. <br />-------------------------<br />Терминал QUIK который Вы осваиваете с трудом.<br />-----------------<br />Когда закроете окно с графиков то терминал закроется?<br />----------------------<br />Для программирования надо не только читать школьные учебники по истории, но и учебники программирования. <br />
			<i>07.02.2026 16:04:12, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81204/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81204/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 16:04:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81203/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_z1mASwe0" href="/user/17142/" bx-tooltip-user-id="17142">Йцукен</a> написал:<br />Автору надо, чтобы скрипт останавливался при закрытии таблицы<br />=============<br /><br /><noindex><a href="https://forum.quik.ru/messages/forum10/message81195/topic9456/#message81195" target="_blank" rel="nofollow">#10</a></noindex><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_M6CdOulh" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br />Именно так у меня и происходит.Закрыл окно - скрипт остановился; перезапустил терминал с работающим скриптом - скрипт работает.<br />=============<br />Под окном здесь подразумевается таблица, не окно терминала. <br />
			<i>07.02.2026 15:14:55, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81203/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81203/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 15:14:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81202/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QKOZkpMS" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />и при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP<br />=============<br />Значит main завершился раньше. Надо ставить таймаут в конце main с ожиданием сигнала из OnClose / OnStop. Если по завершении этого времени сигнал не получен, считать, что таблица закрыта пользователем.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_m95qymad" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />такая архитектура приводит к тому, .что нормальное человеческое событийное программирование придется разбавлять невнятным винегретом из каких то переменных и непонятных таймаутов с потолка.<br />=============<br />Да. <br />
			<i>07.02.2026 14:49:27, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81202/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81202/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 14:49:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81201/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0vP4qNMD" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br />У меня так:<br />=============<br />Автору надо, чтобы скрипт останавливался при закрытии таблицы. <br />
			<i>07.02.2026 14:47:49, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81201/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81201/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 14:47:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81200/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_AVT6urTs" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16750/" target="_blank" rel="nofollow">tohoki</a></noindex> написал:<br />при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.<br />=============<br />Всё с точностью до наоборот.<br />=============<br />Может такое произойти, что скрипт остановится раньше, чем будет получен колбэк OnStop / OnClose (когда терминал долго закрывается, например). <br />
			<i>07.02.2026 14:21:45, Йцукен.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81200/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81200/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 14:21:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81199/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ZEuuO2kF" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br />Всё с точностью до наоборот.<br />=============<br /><br />====quote====<br />13:21:10 &nbsp;07 Feb 2026 Старт.<br />OnStop<br />.................................<br />13:21:21 &nbsp;07 Feb 2026 Старт.<br />QTABLE_CLOSE<br />OnStop<br />.................................<br />13:24:27 &nbsp;07 Feb 2026 Старт.<br />OnStop<br />=============<br /> <br />
			<i>07.02.2026 13:24:28, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81199/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81199/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 13:24:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81198/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_eyW50o0r" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.<br />=============<br />Всё с точностью до наоборот. <br />
			<i>07.02.2026 13:17:14, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81198/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81198/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 13:17:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81197/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_DCCdbW5Y" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />DestroyTable нельзя вызывать в колбеке окна - это отражено в документации.<br />Вызывать OnStop руками, тем более в колбеке окна - тоже не надо.<br /><br />Не ясна суть проблемы. Колбек окна - это транслятор команд в поток main, где все команды и надо обрабатывать. В окне перехватили событие - передали в main, там обработали.<br />Если вызван OnClose, то в нем производите проверки, устанавливаете состояние скрипта (или флаг) в остановлен и поток main уже проверяет это состояние, чтобы не вызывать ничего, т.к. в процессе остановки, а, наоборот, необходимо успеть выполнить процедуры корректного завершения - закрыть окна, закрыть, сохранить открытие файлы. Если в процессе ожидания OnStop не было ошибок выполнения, то скрипт прекрасно запустится вместе с терминалом. А если нет, значит и была ошибка, приведшая к падению main и остановке скрипта до завершения процесса остановки.<br />=============<br />это все понятно что и очевидно. Техника разделения по потокам исполнения очевидна и не является вопросом.<br /><br />Вопрос в надёжном способе интерпретации сигналов о действиях пользователя. <br /><br />ситуация, когда разные события генерируют одну ту же реакцию (qtable_close) и только потом через неопределенное время приходит уточняющий сигнал (onstop) является скажем так, странной.<br />такая архитектура приводит к тому, .что нормальное человеческое событийное программирование придется разбавлять невнятным винегретом из каких то переменных и непонятных таймаутов с потолка.<br /><br /><br />спасибо всем за участие. Подожду ответ от разработчиков, если им будет что сказать<br /> видимо, придется на лету добавить в терминал ещё один метод )))) <br />
			<i>07.02.2026 13:03:25, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81197/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81197/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 13:03:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81196/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_wUgLw2ZZ" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16750/" target="_blank" rel="nofollow">tohoki</a></noindex> написал:<br />как по закрытию окна завершить скрипт, а по завершению работы терминала ничего не делать?<br />=============<br /> Именно так у меня и происходит.<br />Закрыл окно - скрипт остановился; перезапустил терминал с работающим скриптом - скрипт работает.<br />=============<br /><br /><br />благодарю за участие &nbsp; <br />
			<i>07.02.2026 12:47:43, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81196/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81196/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 12:47:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81195/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_G3b1uqYV" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />как по закрытию окна завершить скрипт, а по завершению работы терминала ничего не делать?<br />=============<br />Именно так у меня и происходит.<br />Закрыл окно - скрипт остановился; перезапустил терминал с работающим скриптом - скрипт работает. <br />
			<i>07.02.2026 12:29:26, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81195/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81195/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 12:29:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81194/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			DestroyTable нельзя вызывать в колбеке окна - это отражено в документации.<br />Вызывать OnStop руками, тем более в колбеке окна - тоже не надо.<br /><br />Не ясна суть проблемы. Колбек окна - это транслятор команд в поток main, где все команды и надо обрабатывать. В окне перехватили событие - передали в main, там обработали.<br />Если вызван OnClose, то в нем производите проверки, устанавливаете состояние скрипта (или флаг) в остановлен и поток main уже проверяет это состояние, чтобы не вызывать ничего, т.к. в процессе остановки, а, наоборот, необходимо успеть выполнить процедуры корректного завершения - закрыть окна, закрыть, сохранить открытие файлы. Если в процессе ожидания OnStop не было ошибок выполнения, то скрипт прекрасно запустится вместе с терминалом. А если нет, значит и была ошибка, приведшая к падению main и остановке скрипта до завершения процесса остановки. <br />
			<i>07.02.2026 12:23:35, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81194/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81194/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 12:23:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81193/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Jv5JmJKj" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16750/" target="_blank" rel="nofollow">tohoki</a></noindex> написал:<br />если задать при помощи этой функции окну колбек на закрытие, то он вызывается и при закрытии этого окна мышкой и при закрытии терминала.<br />=============<br /> Вызывается при закрытии терминала??? <br />У меня так:<br />Колбек окна:<br /> 
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp; function&nbsp;&nbsp; event_callback (mw_id, msg, row, col)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;msg&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp;QTABLE_CLOSE&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w_top, w_left, w_bottom, w_right&nbsp;&nbsp;=&nbsp;&nbsp; GetWindowRect (mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DestroyTable (x2_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DestroyTable (mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- Другие события 
&nbsp;&nbsp;&nbsp;&nbsp; end&nbsp;&nbsp;
 
&nbsp;&nbsp;&nbsp;&nbsp; SetTableNotificationCallback (mw_id, event_callback)

&nbsp;&nbsp;</pre>
=============
 И в OnStop:<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp; OnStop (c)&nbsp;&nbsp;-- 1-Остановка скрипта, 2-Закрытие QUIK. 
&nbsp;&nbsp; if&nbsp;&nbsp;mw_id&nbsp;&nbsp;and&nbsp;&nbsp;c&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp; 1&nbsp;&nbsp; then 
&nbsp;&nbsp;&nbsp;&nbsp;w_top, w_left, w_bottom, w_right&nbsp;&nbsp;=&nbsp;&nbsp; GetWindowRect (mw_id)
&nbsp;&nbsp;&nbsp;&nbsp; DestroyTable (mw_id)
&nbsp;&nbsp;&nbsp;&nbsp; DestroyTable (x2_id)
&nbsp;&nbsp; end 
 end 
&nbsp;&nbsp;</pre>
=============
 OnClose вообще не используется.<br />=============<br />Ok. Будем двигаться медленно и печально.<br /><br />забудьте про onclose<br /><br /><br /><br />смотрим на ваш пример<br /><br /><br />вставьте между строками<br /><br />if &nbsp;msg &nbsp;= &nbsp;= &nbsp;QTABLE_CLOSE &nbsp; then <br /> &nbsp; &nbsp; &nbsp; &nbsp;w_top, w_left, w_bottom, w_right &nbsp;= &nbsp; GetWindowRect (mw_id)<br /><br />вывод уведомления PrintDbgStr(&quot;QTABLE_CLOSE&quot;)<br /><br /><br />а первым оператором функции onstop<br />PrintDbgStr(&quot;ONSTOP&quot;)<br /><br /><br />запустите скрипт, debugview и закройте терминал<br /><br /><br />смотрите в debugview.<br /><br />там будут строки в таком порядке<br />QTABLE_CLOSE<br />ONSTOP<br /><br /><br />желающие могут проверить. Я не пробовал и буду рад ошибиться &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_biggrin.png" border="0" data-code=":lol:" data-definition="SD" alt=":lol:" style="width:16px;height:16px;" title="Широкая улыбка" class="bx-smile" /> <br /><br /><br />А теперь сделаем так, чтобы в колбеке QTABLE_CLOSE работа скрипта завершалась. Это нормальное привычное поведение. Закрытие главного окна текстового редактора, майкрософт ворда или самомго терминала квик приводит к прекращению работы программы, а не к продолжению ее работы втихую. Это нормально и привычно везде и всюду, в Windows, Linux и даже, прости господи, macos. Но не в гордости российского программирования от ARQA.<br /><br /><br />когда мы это сделаем (я не могу предложить код, не знаю как у вас реализован функционал останова скрипта. Но закрытие должно быть немедленным) окажется, что <br /><br /><B><U>и при закрытии скрипта и при закрытии терминала мы увидим в debugview только QTABLE_CLOSE и не увидим ONSTOP.</U></B><br /><br />Значит, onstop приходит позже QTABLE_CLOSE. Получается, что действия пользователя неразличимы в момент срабатывания колбека QTABLE_CLOSE, а решения о реакции нужно принимать в нем.<br /><br />Вот и встаёт вопрос. Как отличить действия пользователя (закрыто окно скрипта или закрыт терминал/завершен сеанс windows) и как по закрытию окна завершить скрипт, а по завершению работы терминала ничего не делать?<br /><br /><br />я могу, конечно, поставить хук на закрытие окна терминала, но богородицу от этого неудержимо мутит. <br />
			<i>07.02.2026 11:30:24, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81193/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81193/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 11:30:24 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81191/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_13Lgn2Rq" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />если задать при помощи этой функции окну колбек на закрытие, то он вызывается и при закрытии этого окна мышкой и при закрытии терминала.<br />=============<br />Вызывается при закрытии терминала??? <br />У меня так:<br />Колбек окна:<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;local function event_callback(mw_id, msg, row, col)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if msg == QTABLE_CLOSE&nbsp;&nbsp;then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w_top, w_left, w_bottom, w_right = GetWindowRect(mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyTable(x2_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyTable(mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnStop()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp; -- Другие события
&nbsp;&nbsp;&nbsp;&nbsp;end 
 
&nbsp;&nbsp;&nbsp;&nbsp;SetTableNotificationCallback(mw_id, event_callback)

</pre>
=============
И в OnStop:<br />
====code====
<pre>function OnStop(c) -- 1-Остановка скрипта, 2-Закрытие QUIK.
&nbsp;&nbsp;if mw_id and c == 1 then
&nbsp;&nbsp;&nbsp;&nbsp;w_top, w_left, w_bottom, w_right = GetWindowRect(mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;DestroyTable(mw_id)
&nbsp;&nbsp;&nbsp;&nbsp;DestroyTable(x2_id)
&nbsp;&nbsp;end
end
</pre>
=============
OnClose вообще не используется. <br />
			<i>07.02.2026 11:09:04, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81191/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81191/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 11:09:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81189/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_kM0VI2vx" href="/user/15985/" bx-tooltip-user-id="15985">Ziveleos</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16750/" target="_blank" rel="nofollow">tohoki</a></noindex> написал:<br />У окна есть колбек OnClose<br />=============<br /> OnClose - не колбек окна. <br />Функция SetTableNotificationCallback задает колбек для окна.<br />=============<br />да, верно. Именно об этом я и писал.<br /><br />если задать при помощи этой функции окну колбек на закрытие, то он вызывается и при закрытии этого окна мышкой и при закрытии терминала. Причем до вызова onstop.<br /><br />не понимаю, как распознать действия пользователя. <br />
			<i>07.02.2026 09:31:18, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81189/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81189/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 09:31:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81188/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В Спарте дефективных младенцев скидывали со скалы. По крайней мере такова легенда.<br /><br />но у вас, Николоэз, &nbsp;есть возможность прочитать исходное сообщение несколько раз. Медленно, чтобы попытаться понять его смысл. Попробуйте. <br />
			<i>07.02.2026 09:15:51, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81188/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81188/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 09:15:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81185/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0Jki4FBv" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />Я пробовал искать по форуму, но ничего не нашел<br /><br />у меня квик 12.8.3.4<br /><br />запущен пользовательский скрипт, создающий окно. У окна есть колбек OnClose. Когда пользователь мышкой закрывает окно, нужно завершить работу скрипта. Нет проблем, завершаем.<br /><br />Когда пользователь закрывает терминал при запущенном скрипте, завершать работу скрипта не нужно, она должна продолжаться автоматом при следующем запуске терминала.<br /><br />Мне кажется, что такое поведение скрипта не &nbsp;является чем-то необычным и не должно требовать каких то сверхусилий.<br /><br /><br />Но нихрена! При закрытии терминала первым делом в окно скрипта сразу же приходит колбек OnClose - скрипт его обрабатывает и завершает скрипт. До OnStop дело не доходит даже, этот колбек будет вызван когда то позже.<br /><br />Получается, что при вызове колбека onclose невозможно понять, что произошло - завершили скрипт или закрыли терминал.<br /><br /><br />Я чего то не понимаю или ВСЕ НА САМОМ ДЕЛЕ ТАК И ЕСТЬ? &nbsp; &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <br />=============<br />Вы ошибаетесь.<br />---------------------------- &nbsp;<br />Если скрипт создает окно, то у окна есть функция закрытия, но нет кобека закрытия окна.<br />--------------------<br />OnClose &nbsp;- это колбек &nbsp;закрытие терминала QUIK или выгрузка файла qlua.dll<br />OnStop - это колбек остановки скрипта из диалога управления (т е из окна запуска скрипта)<br />Что не так? <br />
			<i>07.02.2026 08:42:39, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81185/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81185/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 08:42:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81180/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_kU7mowPX" href="/user/16750/" bx-tooltip-user-id="16750">tohoki</a> написал:<br />У окна есть колбек OnClose<br />=============<br />OnClose - не колбек окна. <br />Функция SetTableNotificationCallback задает колбек для окна. <br />
			<i>07.02.2026 01:56:19, Ziveleos.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81180/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81180/topic9456/</guid>
			<pubDate>Sat, 07 Feb 2026 01:56:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81179/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			А если я не ошибаюсь, то как мне отличить эти два события? посмотреть состояние главного окна quik? Там будут какие то еще приколы или все стандартно? <br />
			<i>06.02.2026 22:59:15, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81179/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81179/topic9456/</guid>
			<pubDate>Fri, 06 Feb 2026 22:59:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>onstop и колбек пользовательского окна</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message81178/topic9456/">onstop и колбек пользовательского окна</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я пробовал искать по форуму, но ничего не нашел<br /><br />у меня квик 12.8.3.4<br /><br />запущен пользовательский скрипт, создающий окно. У окна есть колбек OnClose. Когда пользователь мышкой закрывает окно, нужно завершить работу скрипта. Нет проблем, завершаем.<br /><br />Когда пользователь закрывает терминал при запущенном скрипте, завершать работу скрипта не нужно, она должна продолжаться автоматом при следующем запуске терминала.<br /><br />Мне кажется, что такое поведение скрипта не &nbsp;является чем-то необычным и не должно требовать каких то сверхусилий.<br /><br /><br />Но нихрена! При закрытии терминала первым делом в окно скрипта сразу же приходит колбек OnClose - скрипт его обрабатывает и завершает скрипт. До OnStop дело не доходит даже, этот колбек будет вызван когда то позже.<br /><br />Получается, что при вызове колбека onclose невозможно понять, что произошло - завершили скрипт или закрыли терминал.<br /><br /><br />Я чего то не понимаю или ВСЕ НА САМОМ ДЕЛЕ ТАК И ЕСТЬ? &nbsp; <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <img src="http://forum.quik.ru/upload/main/smiles/5/icon_eek.png" border="0" data-code=":shock:" data-definition="SD" alt=":shock:" style="width:16px;height:16px;" title="Удивленно" class="bx-smile" /> <br />
			<i>06.02.2026 22:48:14, tohoki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message81178/topic9456/</link>
			<guid>http://forum.quik.ru/messages/forum10/message81178/topic9456/</guid>
			<pubDate>Fri, 06 Feb 2026 22:48:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
