<?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; Некоторые нюансы LUA. Прошу подсказать.]]></title>
		<link>https://quik2dde.ru/viewtopic.php?id=178</link>
		<atom:link href="https://quik2dde.ru/extern.php?action=feed&amp;tid=178&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Некоторые нюансы LUA. Прошу подсказать.».]]></description>
		<lastBuildDate>Mon, 16 Apr 2018 07:31:22 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=2206#p2206</link>
			<description><![CDATA[<p>Не в этом дело.</p>]]></description>
			<author><![CDATA[null@example.com (Normanmn)]]></author>
			<pubDate>Mon, 16 Apr 2018 07:31:22 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=2206#p2206</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1843#p1843</link>
			<description><![CDATA[<p><strong>CyberTrader</strong>,</p><p>вы сначала прячете всё, потом локальные таблицы (массивы) объявляете, а после пытаетесь с трудом дотянуться до того, что по сути в глобальных переменных S1, S2 и т.д. уже лежит готовое. <img src="https://quik2dde.ru/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>Предлагаю сразу контролы помещать в таблицу, а потом к ней обращаться. Как-то так примерно:</p><div class="codebox"><pre><code>con = {
    vcl.FloatSpinEdit(M, {Name = &#039;SU1&#039;}),
    vcl.FloatSpinEdit(M, {Name = &#039;SU2&#039;})
}</code></pre></div><p>И дальше в любом месте пожалуйста перебирайте массив con, где уже содержатся нужные вам элементы. Ну и не забывайте при OnClick = function (<strong>Sender</strong>), часто этого достаточно.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Sun, 06 Dec 2015 13:28:08 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1843#p1843</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1841#p1841</link>
			<description><![CDATA[<p>Тоже потребовалась похожая задача: использовать строку как имя объекта:<br /></p><div class="codebox"><pre><code>S1 = vcl.FloatSpinEdit(M, {Name = &#039;SU1&#039;})
SU1 = vcl.ComboBox(M, {Items=&#039;1\n2&#039;, ReadOnly=true})
S2 = vcl.FloatSpinEdit(M, {Name = &#039;SU2&#039;})
SU2 = vcl.ComboBox(M, {Items=&#039;1\n2&#039;, ReadOnly=true})
...
vcl.BitBtn(M, {OnClick = function ()
  local con = {S1, S2, ... SN}
  for i = 1, #con do
    local Name = con[i].Name
    if &lt;тут использовать контрол с именем Name, например SU1&gt;.ItemIndex ~= 0 then
      ...
    end
  end  
end</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (CyberTrader)]]></author>
			<pubDate>Sat, 05 Dec 2015 22:06:04 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1841#p1841</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1825#p1825</link>
			<description><![CDATA[<div class="quotebox"><cite>GREEN_X5 пишет:</cite><blockquote><div class="codebox"><pre><code>-- нажимаем обе кнопки и получаем таблицу Tab={Button1=&quot;да&quot;, Button2=&quot;да&quot;}</code></pre></div></blockquote></div><p>Докопаться какой Lua переменной присвоена &quot;ссылка на объект&quot; - не получится.<br />Но наверняка вашу задачу можно решить задачу иначе, только надо знать что за задача.</p><p>Как минимум можно назначив кнопке явно нужное имя в поле Name, после чего получать это имя из Sender.Name<br />Оно не обязано совпадать с Lua-переменной, но по нему можно идентифицировать кнопку.</p><p>Вы опишите какую задачу планируете решать, отдельным топиком про QVCLua, тогда можно будет подумать над подходящими решениями.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Mon, 30 Nov 2015 10:00:28 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1825#p1825</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1824#p1824</link>
			<description><![CDATA[<p>И всё-таки, сформулирую вопрос коротко - возможно получить имя переменной в строчном виде?<br />Задача например - упаковать в таблицу результаты нажатий кнопок под названиями переменных</p><div class="codebox"><pre><code>Tab={}

function Rec(sender)
  local Name= --получаем имя переменной по ссылке sender в строчном виде
  Tab[Name]=sender.Caption
end

Button1 = vcl.Button(Form,{Caption=&quot;да&quot;, OnClick =Rec})
Button2 = vcl.Button(Form,{Caption=&quot;да&quot;, OnClick =Rec})


-- нажимаем обе кнопки и получаем таблицу Tab={Button1=&quot;да&quot;, Button2=&quot;да&quot;}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Sun, 29 Nov 2015 20:27:07 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1824#p1824</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1817#p1817</link>
			<description><![CDATA[<p>И по двум функциям пробежаться можно, замечательно.<br /></p><div class="codebox"><pre><code>a = function (sender)  
sender.Caption=&quot;да&quot;
end

b = function (sender)  
sender.Top=60
end

Button1 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = function(x) a(x) b(x) end})</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Thu, 26 Nov 2015 10:12:23 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1817#p1817</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1816#p1816</link>
			<description><![CDATA[<p>А ведь действительно, vcl же это делает! Работает, спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Thu, 26 Nov 2015 06:52:20 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1816#p1816</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1815#p1815</link>
			<description><![CDATA[<p>Не проверял, но должно быть так:</p><div class="codebox"><pre><code>function a(sender)  
sender.Caption=&quot;да&quot;
end

Button1 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = a})
Button2 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = a})</code></pre></div><p>т.е. в обработчик OnClick&nbsp; и так передаётся параметр - объёкт, по которому клик произведён.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 26 Nov 2015 06:20:21 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1815#p1815</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1814#p1814</link>
			<description><![CDATA[<p>Понял, спасибо, собственно вот для чего затевалось, мультидоступ к обработчикам без .Name, с таблицами ссылки действительно работают.</p><div class="codebox"><pre><code>a=function(tab)  
tab.Caption=&quot;да&quot;
end

Button1 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = function() a(Button1) end})
Button2 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = function() a(Button2) end})</code></pre></div><p>А вот в этой части <br />OnClick = function() a(Button1) end<br />ссылку на задаваемую переменную Button1 никак не унифицировать, не обобщить? Ни где не хранится на этом этапе, ничем не выдернуть имя переменной? ) Типа вот такого</p><div class="codebox"><pre><code>Button1 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = function() a(var_self) end})
Button2 =    vcl.Button(Form,{Caption=&quot;нет&quot;, OnClick = function() a(var_self) end})</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Thu, 26 Nov 2015 05:59:24 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1814#p1814</guid>
		</item>
		<item>
			<title><![CDATA[Re: Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1813#p1813</link>
			<description><![CDATA[<p>Это называется &quot;передача параметров по ссылке&quot; (а не &quot;по значению&quot;).<br />По ссылке в Lua передаются таблицы. Только таблицы, всегда таблицы.<br />Не таблицы передать по ссылке в функцию нельзя.</p><p>Например:<br /></p><div class="codebox"><pre><code>function Transform(point)
    point.x = point.x / 2
    point.y = point.y * 2
end

p = {
    x = 5,
    y = 6
}

print(p.x, p.y)
Transform(p)
print(p.x, p.y)</code></pre></div><p>При исполнении отобразит:</p><div class="codebox"><pre><code>5    6
2.5    12</code></pre></div><p>Видно, что поля таблицы изменились внутри функции Transform() и изменённые вернулись в основную программу.</p>]]></description>
			<author><![CDATA[null@example.com (swerg)]]></author>
			<pubDate>Thu, 26 Nov 2015 03:49:25 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1813#p1813</guid>
		</item>
		<item>
			<title><![CDATA[Некоторые нюансы LUA. Прошу подсказать.]]></title>
			<link>https://quik2dde.ru/viewtopic.php?pid=1812#p1812</link>
			<description><![CDATA[<p>Расширяю познания в LUA, а то уже тесновато в рамках известного мне. )<br />Прошу помочь, кому не лень. )</p><p>Вопрос:<br />Можно ли передать имя переменной в функцию (процедуру), чтобы там ею воспользоваться? Не значение, а именно имя! Как-н. вот так:</p><div class="codebox"><pre><code>function foo(v)
  [v] = 2 -- здесь иксу присваиваем 2
end

x=1
x=foo(&quot;x&quot;)</code></pre></div><p>Помнится в каком-то языке я встречал такую возможность, вроде в bat или vbs. А в Lua можно?</p>]]></description>
			<author><![CDATA[null@example.com (GREEN_X5)]]></author>
			<pubDate>Thu, 26 Nov 2015 00:36:25 +0000</pubDate>
			<guid>https://quik2dde.ru/viewtopic.php?pid=1812#p1812</guid>
		</item>
	</channel>
</rss>
