<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[QUIK -> DDE &mdash; Библиотеки визуальных элементов GUI в QLua]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=21</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=21&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Библиотеки визуальных элементов GUI в QLua».]]></description>
		<lastBuildDate>Tue, 25 Dec 2012 17:23:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Библиотеки визуальных элементов GUI в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=38#p38</link>
			<description><![CDATA[<p><strong>boris</strong>,<br />но тогда скрипт никогда корректно не завершит работу, верно?</p><p>Собственно проблема как раз в том, чтобы скрипт корректно запускался повторно. Т.к. одн раз он запусакается без проблем, а вот повторно - уже увы.</p><p>[url=http://forum-archive.quik.ru/forum/lua/97061/97171/#m97171]Вот здесь[/url] я задал вопрос разработчикам с описанием простейшего примера работы с wxLua, где точно создается 1 поток в QUIK для LUA-обработчиков, и сравнил с выполнением того же скрипта вызовом LUA из стандартной поставки.<br />На мой взгляд описанный эксперимент красноречиво говорит&nbsp; о том, что при подключении сторонних dll-файлов к QLUA наблюдаются какие-то проблемы, которые явно связаны с самим QLUA-плагином к Quik, а не со сторонней библиотекой.<br />Подождем ответ.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Tue, 25 Dec 2012 17:23:32 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=38#p38</guid>
		</item>
		<item>
			<title><![CDATA[Re: Библиотеки визуальных элементов GUI в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=37#p37</link>
			<description><![CDATA[<p>Я делал бесконечный цикл с задержкой в теле main()</p><p>while 1 do <br />sleep(100)<br />end</p>]]></description>
			<author><![CDATA[null@example.com (boris)]]></author>
			<pubDate>Tue, 25 Dec 2012 14:02:57 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=37#p37</guid>
		</item>
		<item>
			<title><![CDATA[Библиотеки визуальных элементов GUI в QLua]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=36#p36</link>
			<description><![CDATA[<p>Есть предложение поделиться наработками по поводу подключения и использования библиотек визуальных элементов в QLUA.</p><p>Начну с себя.<br />Как известно, разработчики приводят в документации пример таблички, говорят, что сделана на <strong>wxLua</strong>.<br />Я пробовал подключить ее и использовать, но пока это не особо увенчалось успехом.</p><p>Например, возьмем простейший пример из поставки wxLua под названием <strong>veryminimal.wx.lua</strong>. Замечу, что в нем содержится функция <strong>main()</strong>, которая в QLUA является обработчиком события с предопределенным названием, поэтому весь полезный код вынесем за пределы этой функции пока, вставим лишь пустую main() чтобы QLUA не ругался. В итоге выкинув все лишнее (комментарии вначале и заполнение package.cpath) получаем:</p><div class="codebox"><pre><code>require(&quot;wx&quot;)

message(&quot;Start&quot;, 1)

frame = wx.wxFrame( wx.NULL, wx.wxID_ANY, &quot;wxLua Very Minimal Demo&quot;,
                    wx.wxDefaultPosition, wx.wxSize(450, 450),
                    wx.wxDEFAULT_FRAME_STYLE )

frame:Show(true)

wx.wxGetApp():MainLoop()

message(&quot;End&quot;, 1)

--------
function main()
end</code></pre></div><p>Если этот текст сохранить в файл и запустить, то получим открывшееся окно, созданное средствами wxLua! Вроде все здорово, и терминал Quik даже работает. Однако, если посмотреть внимательнее, по выясняется:<br />а) Сообщения &quot;End&quot; нет, выведено только &quot;Start&quot;<br />б) Напротив скрипта стоит признак &quot;остановлен&quot; (красный квадрат), хотя наше окно открыто и функционирует.<br />в) Ни один обработчик скрипта LUA не работает (если его дописать, например, onAllTrade).</p><p>Если окно закрыть - увидим сообщение &quot;End&quot;. Выходит, скрипт наш стоял на строке<br /></p><div class="codebox"><pre><code>wx.wxGetApp():MainLoop()</code></pre></div><p>и дальше не шел, что очень грустно.</p><p>Как же работал при этом терминал QUIK?? очевидно, внутри MainLoop() содержится цикл обработки сообщений, который вполне устраивает QUIK (во всяком случае я не нашел проблем).</p><p>Если убрать строку<br /></p><div class="codebox"><pre><code>wx.wxGetApp():MainLoop()</code></pre></div><p>и дополнить функцию main() стандартным ожиданием остановки скрипта - терминал QUIK и вовсе зависает или что-нибудь в этом роде. Т.е. стандартный QUIK&#039;овский обрабтчик сообщений почему-то для wxLua не подходит.</p><p>Хорошо, а что если всю эту фтуковину убрать в main(), где она вроде мешать не будет? просто скопировать в нее весь код да и все, раз уж выхода из него не происходит, пока окно не закроешь?</p><div class="codebox"><pre><code>require(&quot;wx&quot;)

function main()
  message(&quot;Start&quot;, 1)

  frame = wx.wxFrame( wx.NULL, wx.wxID_ANY, &quot;wxLua Very Minimal Demo&quot;,
                      wx.wxDefaultPosition, wx.wxSize(450, 450),
                      wx.wxDEFAULT_FRAME_STYLE )

  frame:Show(true)

  wx.wxGetApp():MainLoop()

  message(&quot;End&quot;, 1)
end</code></pre></div><p>На первый взгляд все хорошо: окно появляется, скрипт во состоянии &quot;работает&quot;, терминал живет. Закрываем окно, скрипт останавливается. Вроде все замечательно, но при повторном запуске скрипта терминал QUIK весь падает с Internal error.</p><p>Что еще придумать - не знаю. Есть ли у кого-нибудь идеи?</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Sun, 23 Dec 2012 21:00:27 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=36#p36</guid>
		</item>
	</channel>
</rss>
