<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK:  Рекурсивный вызов функции]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8861</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8861&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK:  Рекурсивный вызов функции».]]></description>
		<lastBuildDate>Tue, 05 Nov 2013 04:22:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76926#p76926</link>
			<description><![CDATA[<p>Спасибо за информацию.</p><p>Задачу я свою решил, т.е. написал скрипт, правда немного иным способом.</p><p>Вопрос - снят.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Tue, 05 Nov 2013 04:22:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76926#p76926</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76925#p76925</link>
			<description><![CDATA[<p>В функцию передаются не переменные, а их значения или ссылки на них. Так что этот вопрос о типе смысла не имеет.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 05 Nov 2013 04:13:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76925#p76925</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76921#p76921</link>
			<description><![CDATA[<p>После долгой борьбы выяснил, что по сути всё работает, но почему то значение передаваемое в функцию пропадает после return, хотя оно должно было пропадать т.к. функция завершена, т.е. до выхода надо сделать перенесение передаваемого параметра в функцию в статическую переменную функции.</p><div class="codebox"><pre><code> fn(sa)
{
 static sasa:=0, sa1

 sa1:=sa
</code></pre></div><p> Роль независимого потока играет таймер, который считает всё что нужно посчитать, не зависимо от числа нажатий/вызова функции.<br />Задержки для того, что бы видеть - они функциональной роли не несут</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#Persistent
RShift::
 sasa+=1
 fn(sasa)
 sleep 1000
return

fn(sa)
{
 static sasa:=0, sa1

 sa1:=sa
 if (ftm)
      return
 settimer tin , 300
 ftm:=true
 ;gosub tin &lt;---- не обязательно, таймер будет работать пока не будет сделан выход из скрипта.
 return

 tin:
 sasa:=sasa+sa1 
   sleep 150
   tooltip %sasa%
 return  
}</code></pre></div></div></div><p> и остался вопрос как записать тип переменной передаваемой в функцию - такое вот не проходит <strong>fn(static: sa:=0 )</strong></p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 19:42:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76921#p76921</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76920#p76920</link>
			<description><![CDATA[<p>Причём, если не делать функцию, а сделать подпрограмму, то всё работает и считается - вопрос почему?<br />Какая разница между Global и Static? Кроме их значений для функции?</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:59:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76920#p76920</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76919#p76919</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Нет. Просто &quot;а&quot; напечатана на другой раскладке.</p></blockquote></div><p> ну, а так почему? </p><div class="codebox"><pre><code>#Persistent
RShift::
 i+=10
 ;msgbox % i
 fn(i)
return

fn(sa)
{
 ;static b,ftm=false
 if (ftm)
      return
 ;ftm:=false
 settimer l , 10
 ftm:=!ftm
 return

 l:
   ;sasa:=sasa+sa
   sasa+=sa
   tooltip %sasa%
 return  
}</code></pre></div><p> причём при <strong>sasa:=sasa+sa</strong> ничего не выводит, а при <strong>sasa+=sa</strong> выводит&nbsp; 0</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:43:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76919#p76919</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76916#p76916</link>
			<description><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>А почему &quot;b&quot; все время равно 0?</p></blockquote></div><p> просто в loop значение не может попасть, хотя функция вызывается.</p></blockquote></div><p>Нет. Просто &quot;а&quot; напечатана на другой раскладке.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:30:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76916#p76916</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76914#p76914</link>
			<description><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p> горячая клавиша это так было проще вызвать функцию непрерывно работающую, а если вызов происходит из скрипта по каким-либо условиям?</p></blockquote></div><p>А что, не происходит разве? Всё равно из другого потока вызов имеется в виду, а не рекурсия. Этот вызов вклинится между командами функции первого вызова.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:21:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76914#p76914</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76913#p76913</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>А почему &quot;b&quot; все время равно 0?</p></blockquote></div><p> просто в loop значение не может попасть, хотя функция вызывается.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:20:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76913#p76913</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76912#p76912</link>
			<description><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>А вам, наверно, нужна директива #MaxThreadsPerHotkey.</p></blockquote></div><p> горячая клавиша это так было проще вызвать функцию непрерывно работающую, а если вызов происходит из скрипта по каким-либо условиям?</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:16:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76912#p76912</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76910#p76910</link>
			<description><![CDATA[<p>А почему &quot;b&quot; все время равно 0?</p><br /><p>Leater:<br />Переменная &quot;a&quot; почему-то русская была...</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:11:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76910#p76910</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76909#p76909</link>
			<description><![CDATA[<p>Вызвать хоткей несколько раз поможет <strong>#MaxThreadsPerHotkey</strong>, хотя особой пользы это не принесет.<br />btw, рекурсия - это несколько другое, в твоем примере ф-ия не вызывает саму себя.<br />upd: в общем, пока писал... смотри выше ))</p>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:11:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76909#p76909</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76908#p76908</link>
			<description><![CDATA[<p>Рекурсивный — это вызов функции из неё самой. А вам, наверно, нужна директива #MaxThreadsPerHotkey.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:06:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76908#p76908</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76907#p76907</link>
			<description><![CDATA[<p>Ну что? Что Loop, что Goto блокируют функцию, т е получается второго входа нельзя сделать пока не будет сделанl из функции по RETURN.</p><p>Можно конечно запустить таймер и выйти, т.е. создать новый поток, а в одном потоке повторный вход не возможен, так?</p><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Это из-за цикла в функции.</p><p>Так должно работать:</p></blockquote></div><p> угу, так я и подумал, хотя можно и проще - таймер в той же функции запустить и выйти.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 18:06:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76907#p76907</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76906#p76906</link>
			<description><![CDATA[<p>Это из-за цикла в функции.</p><p>Так должно работать:<br /></p><div class="codebox"><pre><code>#Persistent
#SingleInstance,Force

RShift::
  i+=10
  msgbox % i
  fn(i)
return

fn(a)
{
  static b:=0
  settimer,loop,1
}


loop:
{
  b+=а
  tooltip %b%
}
return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Mon, 04 Nov 2013 17:56:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76906#p76906</guid>
		</item>
		<item>
			<title><![CDATA[AHK:  Рекурсивный вызов функции]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76905#p76905</link>
			<description><![CDATA[<p>Я для проверки написал такой скрипт </p><div class="codebox"><pre><code>#Persistent
RShift::
 i+=10
 msgbox % i
 fn(i)
return

fn(a)
{
 static b:=0
 loop
  {
   b+=а
   tooltip %b%
  }
}</code></pre></div><p> Но второго вызова функции не происходит.<br />Я в чём то ошибся или же нельзя вызвать функцию пока она не закончит работу, т.е. не выйдет по RETURN ?</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Mon, 04 Nov 2013 17:54:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76905#p76905</guid>
		</item>
	</channel>
</rss>
