<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: DestroyTable (и Clear) закрывает скрипт вместо таблицы]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме DestroyTable (и Clear) закрывает скрипт вместо таблицы форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 20 May 2026 09:25:13 +0300</pubDate>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79828/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>function OnStop (signal)
&nbsp;&nbsp; if t_id then DestroyTable (t_id) end -- Завершение!
&nbsp;&nbsp;&nbsp; StopFlag = true
&nbsp;&nbsp;return 1000 -- Тайм-аут 1 сек вместо стандартных 5
end

function Create (caption, rowNum, cols)
&nbsp;&nbsp; t_id = AllocTable()
&nbsp;&nbsp;for i = 1, #cols do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
&nbsp;&nbsp;&nbsp;&nbsp;assert (1==AddColumn (t_id,i,cols&#91;i&#93;&#91;1&#93;,true,cols&#91;i&#93;&#91;2&#93;,cols&#91;i&#93;&#91;3&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ("%2d %s %s %s", i, tostring(cols&#91;i&#93;&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91;2&#93;), tostring (cols&#91;i&#93;&#91;3&#93;)))
&nbsp;&nbsp;end -- * false - all cells invisible
&nbsp;&nbsp;assert (1 == CreateWindow (t_id))
&nbsp;&nbsp;assert (SetWindowCaption (t_id, caption))
&nbsp;&nbsp;local top, left, bottom, right = GetWindowRect (t_id)
&nbsp;&nbsp;local totalWidth = right - left + 10 -- Эмпирика |
&nbsp;&nbsp;local frameHeight = 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;local rowHeight&nbsp;&nbsp; = 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;for i = 1, rowNum do
&nbsp;&nbsp;&nbsp;&nbsp;local row = InsertRow (t_id, -1)
&nbsp;&nbsp;&nbsp;&nbsp;assert (row == i)
&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, 1, "row".. i))
&nbsp;&nbsp;&nbsp;&nbsp;for j = 2, #cols do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local val = i * 10 + j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;assert (SetWindowPos (t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight + rowHeight * rowNum))
end -- Cre ate ()

 function main()
&nbsp;&nbsp;local rowNum = 2
&nbsp;&nbsp;local cols = {
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE, 10,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;10,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE, 10,}
&nbsp;&nbsp;}
 while StopFlag==nil do
&nbsp;&nbsp;if t_id==nil then Create ("Caption", rowNum, cols) end
&nbsp;&nbsp;&nbsp;&nbsp;sleep (10)
&nbsp;&nbsp;&nbsp;end
end -- main()
</pre>
============= <br />
			<i>16.10.2025 11:44:03, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79828/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79828/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 11:44:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79826/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Рекомендую сделать так:
====code====
<pre>function OnStop (signal)
&nbsp;&nbsp; if t_id then DestroyTable (t_id) end -- Завершение!
&nbsp;&nbsp;&nbsp; StopFlag = true
&nbsp;&nbsp;return 1000 -- Тайм-аут 1 сек вместо стандартных 5
end

function Create (caption, rowNum, cols)
&nbsp;&nbsp;local rowNum = 2
&nbsp;&nbsp;local cols = {
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE, 10,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;10,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE, 10,}
&nbsp;&nbsp;}
&nbsp;&nbsp;t_id = AllocTable()
&nbsp;&nbsp;for i = 1, #cols do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
&nbsp;&nbsp;&nbsp;&nbsp;assert (1==AddColumn (t_id,i,cols&#91;i&#93;&#91;1&#93;,true,cols&#91;i&#93;&#91;2&#93;,cols&#91;i&#93;&#91;3&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ("%2d %s %s %s", i, tostring(cols&#91;i&#93;&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91;2&#93;), tostring (cols&#91;i&#93;&#91;3&#93;)))
&nbsp;&nbsp;end -- * false - all cells invisible
&nbsp;&nbsp;assert (1 == CreateWindow (t_id))
&nbsp;&nbsp;assert (SetWindowCaption (t_id, caption))
&nbsp;&nbsp;local top, left, bottom, right = GetWindowRect (t_id)
&nbsp;&nbsp;local totalWidth = right - left + 10 -- Эмпирика |
&nbsp;&nbsp;local frameHeight = 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;local rowHeight&nbsp;&nbsp; = 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;for i = 1, rowNum do
&nbsp;&nbsp;&nbsp;&nbsp;local row = InsertRow (t_id, -1)
&nbsp;&nbsp;&nbsp;&nbsp;assert (row == i)
&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, 1, "row".. i))
&nbsp;&nbsp;&nbsp;&nbsp;for j = 2, #cols do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local val = i * 10 + j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;assert (SetWindowPos (t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight + rowHeight * rowNum))
end -- Cre ate ()

 function main()
&nbsp;&nbsp;if t_id==nil then Create ("Caption", rowNum, cols) end
&nbsp;&nbsp;while StopFlag==nil do&nbsp;&nbsp;sleep (10) end
end -- main()
</pre>
============= <br />
			<i>16.10.2025 11:40:15, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79826/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79826/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 11:40:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79825/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			пардон, еще исправление:
====code====
<pre>function OnStop (signal)
&nbsp;&nbsp; message ("Destroying ".. t_id)
&nbsp;&nbsp; if DestroyTable (t_id) then -- Завершение!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying success ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying failed ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp; StopFlag = true
&nbsp;&nbsp;return 1000 -- Тайм-аут 1 сек вместо стандартных 5
end

function Create (caption, rowNum, cols)
&nbsp;&nbsp;t_id = AllocTable()
&nbsp;&nbsp;for i = 1, #cols do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
&nbsp;&nbsp;&nbsp;&nbsp;assert (1==AddColumn (t_id,i,cols&#91;i&#93;&#91;1&#93;,true,cols&#91;i&#93;&#91;2&#93;,cols&#91;i&#93;&#91;3&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ("%2d %s %s %s", i, tostring(cols&#91;i&#93;&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91;2&#93;), tostring (cols&#91;i&#93;&#91;3&#93;)))
&nbsp;&nbsp;end -- * false - all cells invisible
&nbsp;&nbsp;assert (1 == CreateWindow (t_id))
&nbsp;&nbsp;assert (SetWindowCaption (t_id, caption))
&nbsp;&nbsp;local top, left, bottom, right = GetWindowRect (t_id)
&nbsp;&nbsp;local totalWidth = right - left + 10 -- Эмпирика |
&nbsp;&nbsp;local frameHeight = 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;local rowHeight&nbsp;&nbsp; = 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;for i = 1, rowNum do
&nbsp;&nbsp;&nbsp;&nbsp;local row = InsertRow (t_id, -1)
&nbsp;&nbsp;&nbsp;&nbsp;assert (row == i)
&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, 1, "row".. i))
&nbsp;&nbsp;&nbsp;&nbsp;for j = 2, #cols do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local val = i * 10 + j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;assert (SetWindowPos (t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight + rowHeight * rowNum))
&nbsp;&nbsp;return t_id
end -- Cre ate ()

 function main()
&nbsp;&nbsp;local rowNum = 2
&nbsp;&nbsp;local cols = {
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE, 10,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;10,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE, 10,}
&nbsp;&nbsp;}
&nbsp;&nbsp;t_id = Create ("Caption", rowNum, cols)
&nbsp;&nbsp;while not IsWindowClosed (t_id) do
&nbsp;&nbsp;&nbsp;&nbsp;sleep (10)
&nbsp;&nbsp;end -- while
end -- main()
</pre>
============= <br />
			<i>16.10.2025 11:09:01, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79825/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79825/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 11:09:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79824/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Разобрался<br />Исправил скрипт так:
====code====
<pre>function OnStop (signal)
&nbsp;&nbsp; message ("Destroying ".. t_id)
&nbsp;&nbsp; if DestroyTable (t_id) then -- Завершение!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying success ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying failed ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp; StopFlag = true
&nbsp;&nbsp;return 1000 -- Тайм-аут 1 сек вместо стандартных 5
end

function Create (caption, rowNum, cols)
&nbsp;&nbsp;local t_id = AllocTable()
&nbsp;&nbsp;for i = 1, #cols do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width
&nbsp;&nbsp;&nbsp;&nbsp;assert (1==AddColumn (t_id,i,cols&#91;i&#93;&#91;1&#93;,true,cols&#91;i&#93;&#91;2&#93;,cols&#91;i&#93;&#91;3&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ("%2d %s %s %s", i, tostring(cols&#91;i&#93;&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91;2&#93;), tostring (cols&#91;i&#93;&#91;3&#93;)))
&nbsp;&nbsp;end -- * false - all cells invisible
&nbsp;&nbsp;assert (1 == CreateWindow (t_id))
&nbsp;&nbsp;assert (SetWindowCaption (t_id, caption))
&nbsp;&nbsp;local top, left, bottom, right = GetWindowRect (t_id)
&nbsp;&nbsp;local totalWidth = right - left + 10 -- Эмпирика |
&nbsp;&nbsp;local frameHeight = 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;local rowHeight&nbsp;&nbsp; = 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;for i = 1, rowNum do
&nbsp;&nbsp;&nbsp;&nbsp;local row = InsertRow (t_id, -1)
&nbsp;&nbsp;&nbsp;&nbsp;assert (row == i)
&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, 1, "row".. i))
&nbsp;&nbsp;&nbsp;&nbsp;for j = 2, #cols do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local val = i * 10 + j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;assert (SetWindowPos (t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight + rowHeight * rowNum))
&nbsp;&nbsp;return t_id
end -- Cre ate ()

 function main()
&nbsp;&nbsp;local rowNum = 2
&nbsp;&nbsp;local cols = {
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE, 10,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;10,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE, 10,}
&nbsp;&nbsp;}
&nbsp;&nbsp;t_id = Create ("Caption", rowNum, cols)
&nbsp;&nbsp;while not IsWindowClosed (t_id) do
&nbsp;&nbsp;&nbsp;&nbsp;sleep (10)
&nbsp;&nbsp;end -- while
end -- main()
</pre>
=============
Все работает нормально. <br />
			<i>16.10.2025 11:06:58, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79824/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79824/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 11:06:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79822/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Q3BS7Dmf" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a> написал:<br />Версия Quik 12.5.0.20. Код скрипта<br /> 
====code====
<pre>&nbsp;&nbsp; function&nbsp;&nbsp;OnStop (signal)
&nbsp;&nbsp;StopFlag&nbsp;&nbsp;=&nbsp;&nbsp; true 
&nbsp;&nbsp; return&nbsp;&nbsp; 1000&nbsp;&nbsp; -- Тайм-аут 1 сек вместо стандартных 5 
 end 

 function&nbsp;&nbsp;Create (caption, rowNum, cols)
&nbsp;&nbsp; local&nbsp;&nbsp;t_id&nbsp;&nbsp;=&nbsp;&nbsp; AllocTable ()
&nbsp;&nbsp; for&nbsp;&nbsp;i&nbsp;&nbsp;=&nbsp;&nbsp; 1 ,&nbsp;&nbsp;# cols&nbsp;&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;assert ( 1&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp;AddColumn&nbsp;&nbsp;(t_id,i,cols&#91;i&#93;&#91; 1 &#93;, true ,cols&#91;i&#93;&#91; 2 &#93;,cols&#91;i&#93;&#91; 3 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ( "%2d %s %s %s" , i, tostring(cols&#91;i&#93;&#91; 1 &#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91; 2 &#93;), tostring (cols&#91;i&#93;&#91; 3 &#93;)))
&nbsp;&nbsp; end&nbsp;&nbsp; -- * false - all cells invisible 
&nbsp;&nbsp;assert ( 1&nbsp;&nbsp; =&nbsp;&nbsp;=&nbsp;&nbsp; CreateWindow&nbsp;&nbsp;(t_id))
&nbsp;&nbsp;assert ( SetWindowCaption&nbsp;&nbsp;(t_id, caption))
&nbsp;&nbsp; local&nbsp;&nbsp;top, left, bottom, right&nbsp;&nbsp;=&nbsp;&nbsp; GetWindowRect&nbsp;&nbsp;(t_id)
&nbsp;&nbsp; local&nbsp;&nbsp;totalWidth&nbsp;&nbsp;=&nbsp;&nbsp;right&nbsp;&nbsp;-&nbsp;&nbsp;left&nbsp;&nbsp;+&nbsp;&nbsp; 10&nbsp;&nbsp; -- Эмпирика | 
&nbsp;&nbsp; local&nbsp;&nbsp;frameHeight&nbsp;&nbsp;=&nbsp;&nbsp; 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- | 
&nbsp;&nbsp; local&nbsp;&nbsp;rowHeight&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp; 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- | 
&nbsp;&nbsp; for&nbsp;&nbsp;i&nbsp;&nbsp;=&nbsp;&nbsp; 1 , rowNum&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;row&nbsp;&nbsp;=&nbsp;&nbsp; InsertRow&nbsp;&nbsp;(t_id,&nbsp;&nbsp;-&nbsp;&nbsp;1 )
&nbsp;&nbsp;&nbsp;&nbsp;assert (row&nbsp;&nbsp;=&nbsp;&nbsp;=&nbsp;&nbsp;i)
&nbsp;&nbsp;&nbsp;&nbsp;assert ( SetCell&nbsp;&nbsp;(t_id, row,&nbsp;&nbsp;1 ,&nbsp;&nbsp;"row"&nbsp;&nbsp;..&nbsp;&nbsp;i))
&nbsp;&nbsp;&nbsp;&nbsp; for&nbsp;&nbsp;j&nbsp;&nbsp;=&nbsp;&nbsp; 2 ,&nbsp;&nbsp;# cols&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; local&nbsp;&nbsp;val&nbsp;&nbsp;=&nbsp;&nbsp;i&nbsp;&nbsp;*&nbsp;&nbsp; 10&nbsp;&nbsp; +&nbsp;&nbsp;j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert ( SetCell&nbsp;&nbsp;(t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp; end 
&nbsp;&nbsp;assert ( SetWindowPos&nbsp;&nbsp;(t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight&nbsp;&nbsp;+&nbsp;&nbsp;rowHeight&nbsp;&nbsp;*&nbsp;&nbsp;rowNum))
&nbsp;&nbsp; return&nbsp;&nbsp;t_id
 end&nbsp;&nbsp; -- Cre ate () 

&nbsp;&nbsp;function&nbsp;&nbsp; main ()
&nbsp;&nbsp; local&nbsp;&nbsp;rowNum&nbsp;&nbsp;=&nbsp;&nbsp; 2 
&nbsp;&nbsp; local&nbsp;&nbsp;cols&nbsp;&nbsp;=&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE,&nbsp;&nbsp;10 ,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp; 10 ,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE,&nbsp;&nbsp;10 ,}
&nbsp;&nbsp;}
&nbsp;&nbsp; local&nbsp;&nbsp;t_id&nbsp;&nbsp;=&nbsp;&nbsp;Create ( "Caption" , rowNum, cols)
&nbsp;&nbsp; while&nbsp;&nbsp; not&nbsp;&nbsp; IsWindowClosed&nbsp;&nbsp;(t_id)&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp;StopFlag&nbsp;&nbsp;then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message&nbsp;&nbsp;( "Destroying "&nbsp;&nbsp;..&nbsp;&nbsp;t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if&nbsp;&nbsp; DestroyTable&nbsp;&nbsp;(t_id)&nbsp;&nbsp;then&nbsp;&nbsp; -- Завершение! 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message&nbsp;&nbsp;( "Destroying success "&nbsp;&nbsp;..&nbsp;&nbsp;t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message&nbsp;&nbsp;( "Destroying failed "&nbsp;&nbsp;..&nbsp;&nbsp;t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break 
&nbsp;&nbsp;&nbsp;&nbsp; end 
&nbsp;&nbsp;&nbsp;&nbsp; sleep&nbsp;&nbsp;( 10 )
&nbsp;&nbsp; end&nbsp;&nbsp; -- while 
 end&nbsp;&nbsp; -- main() 

&nbsp;&nbsp;</pre>
=============
 ---<br />=============<br />[FILE ID=12800]<br />[FILE ID=12801]<br />не удалось повторить , скрипт закрывает окно.<br /> что не так? <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12800&" width="1296" height="984" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12801&" width="1300" height="972" /><br /><i>16.10.2025 10:39:08, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79822/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79822/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 10:39:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79820/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_PBgkzoIU" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a>, добрый день.<br /><br />Действительно, в настоящий момент остановка работы скрипта блокирует возможность работы его основного потока с таблицами в РМ QUIK.<br />Если после остановки скрипт перед завершением работы попытается удалить какую-либо таблицу или взаимодействовать с ней иным образом, то скрипт может зависнуть и будет принудительно остановлен.<br />Данная проблема будет исправлена в очередных версиях терминала Quik.<br /><br />В качестве временного решения рекомендуем пока вынести удаление таблиц в функцию OnStop() и не строить логику завершения работы скрипта вокруг состояния окон.<br /><br />Приносим извинения за доставленные неудобства. <br />
			<i>16.10.2025 08:29:09, Anton Belonogov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79820/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79820/topic9265/</guid>
			<pubDate>Thu, 16 Oct 2025 08:29:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79812/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Оказывается, после захода управления в OnStop для кода main() функция DestroyTable() не может выполняться штатным образом. Если нужно отреагировать на OnStop, надо &nbsp;туда же поместить и вызовы DestroyTable().<br />После захода в OnStop() функция main() может делать ещё кое-что, но хотелось бы знать полный список ограничений на этот случай.<br />То ли я плохо прочитал документацию по Quik Lua, то ли документация не полная. <br />
			<i>15.10.2025 14:07:48, Ростислав Дм. Кудряшов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79812/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79812/topic9265/</guid>
			<pubDate>Wed, 15 Oct 2025 14:07:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79791/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_sNNBHrd7" href="/user/16011/" bx-tooltip-user-id="16011">paluke</a> написал:<br />Не только DestroyTable(), любые операции с таблицей не выполняются. <br />=============<br /> &nbsp; &nbsp; <br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_wlWut5cf" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />Работа с таблицами QUIK выполняется в служебном потоке, отличном от main. В том же, в котором выполняется OnStop. И пока выполняется &nbsp;OnStop <I>никакие</I> операции с таблицами QUIK не возможны (поток работы с таблицами занят OnStop ).<br />=============<br /> <br />
			<i>14.10.2025 08:08:47, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79791/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79791/topic9265/</guid>
			<pubDate>Tue, 14 Oct 2025 08:08:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79790/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Скорее не коллбек, а какой-то семафор, нужный для операций с окнами, заблокирован от момента нажатия на кнопку &quot;Остановить&quot; до завершения. Не только DestroyTable(), любые операции с таблицей не выполняются. Если к примеру вызвать &nbsp;SetWindowCaption(), возврата из нее не будет, но после таймаута остановки заголовок окна таки изменится. <br />
			<i>14.10.2025 07:54:48, paluke.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79790/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79790/topic9265/</guid>
			<pubDate>Tue, 14 Oct 2025 07:54:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79781/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ocuOhhs6" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Если он вызывается в main то вызов это и есть исполнение.<br />=============<br /> &nbsp; &nbsp;nikolz писатель &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> ?<br /> &nbsp;Читайте:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_n1hwqsCl" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />она не лезет в таблицы QUIK, а создает коллбек закрытия таблицы, который обрабатывается &nbsp;в потоке терминала, <br />=============<br /> <br />
			<i>13.10.2025 16:14:37, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79781/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79781/topic9265/</guid>
			<pubDate>Mon, 13 Oct 2025 16:14:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79779/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_fgQ8kX1P" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />1. &nbsp;<br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Полагаю, что не так.<br />=============<br /> &nbsp; &nbsp; Зачем полагать, когда можно проверить. Переставьте DestroyTable в OnStop.<br /><br />2. &nbsp;<br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Функция &nbsp;DestroyTable &nbsp;в данном примере вызывается в потоке Main.<br />=============<br /> &nbsp; &nbsp;Вы точно знаете как устроена DestroyTable?<br /> &nbsp; &nbsp; Не точно, но скорее всего, это реализовано следующим образом.<br /> &nbsp; &nbsp; При том, что DestroyTable вызывается в main, она не лезет в таблицы QUIK, а создает коллбек закрытия таблицы, который обрабатывается &nbsp;в потоке терминала, но он занят более интересным делом &nbsp;:: : остановкой скрипта (удаляет поток main и перестает обрабатывать коллбеки, созданные в нем, так как исчезнет контекст их выполнения).<br />=============<br />Что-то у Вас не то. &nbsp;Колбек не создается в процессе исполнения. Колбек - это код функции , он создан при загрузке программы.<br />Если он вызывается в main то вызов это и есть исполнение. <br />
			<i>13.10.2025 15:24:58, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79779/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79779/topic9265/</guid>
			<pubDate>Mon, 13 Oct 2025 15:24:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79776/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Есть такое<noindex><a href="https://forum.quik.ru/messages/forum10/message1022/topic155/#message1022" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message1022/topic155/#message1022</a></noindex> <br />
			<i>13.10.2025 13:59:17, paluke.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79776/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79776/topic9265/</guid>
			<pubDate>Mon, 13 Oct 2025 13:59:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79751/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			1. <br />====quote====<br /><a class="blog-p-user-name" id="bp_aQ2ofylb" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Полагаю, что не так.<br />=============<br /> &nbsp; &nbsp;Зачем полагать, когда можно проверить. Переставьте DestroyTable в OnStop.<br /><br />2. <br />====quote====<br /><a class="blog-p-user-name" id="bp_Lcc1UME4" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Функция &nbsp;DestroyTable &nbsp;в данном примере вызывается в потоке Main.<br />=============<br /> &nbsp; Вы точно знаете как устроена DestroyTable?<br /> &nbsp; &nbsp; Не точно, но скорее всего, это реализовано следующим образом.<br /> &nbsp; &nbsp; При том, что DestroyTable вызывается в main, она не лезет в таблицы QUIK, а создает коллбек закрытия таблицы, который обрабатывается &nbsp;в потоке терминала, но он занят более интересным делом &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> : остановкой скрипта (удаляет поток main и перестает обрабатывать коллбеки, созданные в нем, так как исчезнет контекст их выполнения). <br />
			<i>12.10.2025 09:03:45, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79751/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79751/topic9265/</guid>
			<pubDate>Sun, 12 Oct 2025 09:03:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79749/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_I5unp6mN" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/111/" target="_blank" rel="nofollow">Ростислав Дм. Кудряшов</a></noindex> написал:<br />В каком потоке &nbsp;управления выполняется вызов функции DestroyTable()<br />=============<br /> &nbsp; &nbsp;Работа с таблицами QUIK выполняется в служебном потоке, отличном от main. В том же, в котором выполняется OnStop. И пока выполняется &nbsp;OnStop никакие операции с таблицами QUIK не возможны (поток работы с таблицами занят OnStop ). OnStop в любом случае завершает скрипт, поэтому DestroyTable не выполнена и созданная в скрипте таблица существует после завершения скрипта.<br /> &nbsp; Если что то надо делать с таблицами по кнопке завершить, то это надо делать в функции OnStop.<br />=============<br />Полагаю, что не так.<br />--------------------<br />Поток, если не создается специально для функции, определяется местом вызова.<br />----------------------<br />Все колбеки ( в том числе ОnStop ) вызываются в основном потоке VMLua (т е в потоке терминала).<br />---------------------------<br />Функция &nbsp;DestroyTable &nbsp;в данном примере вызывается в потоке Main. <br />
			<i>12.10.2025 06:02:56, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79749/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79749/topic9265/</guid>
			<pubDate>Sun, 12 Oct 2025 06:02:56 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79746/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_7YrrW0Ha" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a> написал:<br />В каком потоке &nbsp;управления выполняется вызов функции DestroyTable()<br />=============<br /> &nbsp; Работа с таблицами QUIK выполняется в служебном потоке, отличном от main. В том же, в котором выполняется OnStop. И пока выполняется &nbsp;OnStop никакие операции с таблицами QUIK не возможны (поток работы с таблицами занят OnStop ). OnStop в любом случае завершает скрипт, поэтому DestroyTable не выполнена и созданная в скрипте таблица существует после завершения скрипта.<br /> &nbsp; Если что то надо делать с таблицами по кнопке завершить, то это надо делать в функции OnStop. <br />
			<i>11.10.2025 19:01:44, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79746/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79746/topic9265/</guid>
			<pubDate>Sat, 11 Oct 2025 19:01:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79745/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В каком потоке &nbsp;управления выполняется вызов функции DestroyTable() в цикле &nbsp;while not IsWindowClosed (t_id) do... ?<br />Если в том же, что и заголовок цикла, то проверка IsWindowClosed() никак не может сработать раньше возврата значения из DestroyTable() и обработки этого значения в операторе if DestroyTable(t_id) then... Обработка логического значения из DestroyTable() завершается выводом message и оператором break, что исключает срабатывание IsWindowClosed (t_id) в заголовке цикла while.<br />Но печатается только перед функцией DestroyTable(), а сразу после неё - скрипт уже &nbsp;завершён. <br />
			<i>11.10.2025 15:29:22, Ростислав Дм. Кудряшов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79745/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79745/topic9265/</guid>
			<pubDate>Sat, 11 Oct 2025 15:29:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79742/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В моём скрипте закодировано его закрытие не сразу после закрытия таблицы DestroyTable, а после вывода сообщения о закрытии таблицы.<br />Так что неправда ваша, что закрытие реализовано в моём скрипте. Это закрытие реально - в операторе DestroyTable&gt; который должен возвоащать логическое значение, но вопреки документации - не возвращает ничего.<br />Вчитайтесь пожалуйста в код цикла while not IsWindowClosed (t_id) do... <br />
			<i>11.10.2025 12:36:10, Ростислав Дм. Кудряшов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79742/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79742/topic9265/</guid>
			<pubDate>Sat, 11 Oct 2025 12:36:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79737/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4ZBzM1bB" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a> написал:<br />Версия Quik 12.5.0.20. Код скрипта<br />=============<br /> &nbsp; &nbsp;В скрипте реализовано его закрытие при закрытии таблицы:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_65V0naQo" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a> написал:<br />while not IsWindowClosed (t_id) do<br />=============<br />Будет выход из цикла и функции main при закрытии таблицы и это правильно. &nbsp; <br /> &nbsp;В данном случае ошибки в Qlua нет. <br />
			<i>10.10.2025 13:16:20, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79737/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79737/topic9265/</guid>
			<pubDate>Fri, 10 Oct 2025 13:16:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79736/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_VTLL0XHz" href="/user/111/" bx-tooltip-user-id="111">Ростислав Дм. Кудряшов</a>, добрый день.<br /><br />Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>10.10.2025 10:26:44, Anton Belonogov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79736/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79736/topic9265/</guid>
			<pubDate>Fri, 10 Oct 2025 10:26:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>DestroyTable (и Clear) закрывает скрипт вместо таблицы</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message79626/topic9265/">DestroyTable (и Clear) закрывает скрипт вместо таблицы</a></b> <i>Тема описана в Названии и в Тексте сообщения</i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Версия Quik 12.5.0.20. Код скрипта<br />
====code====
<pre>function OnStop (signal)
&nbsp;&nbsp;StopFlag = true
&nbsp;&nbsp;return 1000 -- Тайм-аут 1 сек вместо стандартных 5
end

function Create (caption, rowNum, cols)
&nbsp;&nbsp;local t_id = AllocTable()
&nbsp;&nbsp;for i = 1, #cols do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;assert (1==AddColumn (t_id,i,cols&#91;i&#93;&#91;1&#93;,true,cols&#91;i&#93;&#91;2&#93;,cols&#91;i&#93;&#91;3&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,string.format ("%2d %s %s %s", i, tostring(cols&#91;i&#93;&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,tostring (cols&#91;i&#93;&#91;2&#93;), tostring (cols&#91;i&#93;&#91;3&#93;)))
&nbsp;&nbsp;end -- * false - all cells invisible
&nbsp;&nbsp;assert (1 == CreateWindow (t_id))
&nbsp;&nbsp;assert (SetWindowCaption (t_id, caption))
&nbsp;&nbsp;local top, left, bottom, right = GetWindowRect (t_id)
&nbsp;&nbsp;local totalWidth = right - left + 10 -- Эмпирика |
&nbsp;&nbsp;local frameHeight = 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;local rowHeight&nbsp;&nbsp; = 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--"- |
&nbsp;&nbsp;for i = 1, rowNum do
&nbsp;&nbsp;&nbsp;&nbsp;local row = InsertRow (t_id, -1)
&nbsp;&nbsp;&nbsp;&nbsp;assert (row == i)
&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, 1, "row".. i))
&nbsp;&nbsp;&nbsp;&nbsp;for j = 2, #cols do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local val = i * 10 + j
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert (SetCell (t_id, row, j, tostring(val), val))
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;end
&nbsp;&nbsp;assert (SetWindowPos (t_id, left, top
&nbsp;&nbsp;&nbsp;&nbsp;,totalWidth, frameHeight + rowHeight * rowNum))
&nbsp;&nbsp;return t_id
end -- Cre ate ()

 function main()
&nbsp;&nbsp;local rowNum = 2
&nbsp;&nbsp;local cols = {
&nbsp;&nbsp;&nbsp;&nbsp;{"Column1", QTABLE_STRING_TYPE, 10,}
&nbsp;&nbsp; ,{"Column2", QTABLE_INT_TYPE,&nbsp;&nbsp;&nbsp;&nbsp;10,}
&nbsp;&nbsp; ,{"Column3", QTABLE_DOUBLE_TYPE, 10,}
&nbsp;&nbsp;}
&nbsp;&nbsp;local t_id = Create ("Caption", rowNum, cols)
&nbsp;&nbsp;while not IsWindowClosed (t_id) do
&nbsp;&nbsp;&nbsp;&nbsp;if StopFlag then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if DestroyTable (t_id) then -- Завершение!
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying success ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message ("Destroying failed ".. t_id)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;sleep (10)
&nbsp;&nbsp;end -- while
end -- main()

</pre>
=============
--- <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12743&" width="1920" height="1080" /><br /><i>01.10.2025 22:28:58, Ростислав Дм. Кудряшов.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message79626/topic9265/</link>
			<guid>http://forum.quik.ru/messages/forum10/message79626/topic9265/</guid>
			<pubDate>Wed, 01 Oct 2025 22:28:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
