<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Продолжение работы скрипта после OnMessage]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=13868</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=13868&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Продолжение работы скрипта после OnMessage».]]></description>
		<lastBuildDate>Thu, 21 Jun 2018 12:54:31 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126329#p126329</link>
			<description><![CDATA[<p>Да и освобождение должно быть последовательным. Как сделать красиво не представляю.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 21 Jun 2018 12:54:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126329#p126329</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126327#p126327</link>
			<description><![CDATA[<p><strong>stealzy</strong>, так если после первого вызова ошибка, второго и т.д. быть уже не должно.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 21 Jun 2018 12:25:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126327#p126327</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126326#p126326</link>
			<description><![CDATA[<p><strong>YMP</strong> можно еще короче:<br /></p><div class="codebox"><pre><code>call func_1
if error err_1 := true
call func_2
if error err_2 := true
call func_3
err_3 := error ? true :
...
...
if err_3 free res_3
if err_2 free res_2
IfEqual err_1, 1, free res_1</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 21 Jun 2018 12:21:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126326#p126326</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126323#p126323</link>
			<description><![CDATA[<p>Вполне. Я просто ещё не доходил своим разумением до таких тонкостей, стараясь пользовать стандартные принципы, которые в своей реализации сами беспокоятся об освобождении ресурсов, а то, что я таки инкрементирую в работу, удаляю/освобождаю в оконцове, перед &quot;ExitApp&quot;.</p><p>Мало опыта, мало практики, что подталкивает в первую очередь преследовать вопросы функциональности, а не оптимизации и тут я не могу похвастаться необходимостью использования &quot;GoTo&quot;. Наоборот, когда мне впервые попался на глаза этот оператор, меня соблазнила элементарная простота возможности попасть из текущего места в любое другое. Что я творил... Ужас! И потом мне было чрезвычайно сложно перейти пониманием к концепции циклов, что сейчас кажется даже смешным, но то была та ещё палка в колесе. Это как если бы одна нога была всю жизнь короче, от чего походка была бы хромой, а потом сделали операцию, откорректировав возможность правильного позиционирования, но в силу инерции походка всё равно повторяет моторику предыдущего опыта.</p><p>Не подумайте пожалуйста, что я противник &quot;GoTo&quot;, я лишь говорю, что им не стоит пользоваться там, где без него можно легко обойтись и в своей нынешней практике, я не помню ни одного момента, где мне бы категорично требовалось его применение. Поэтому, говоря, что я им не пользуюсь, подразумеваю слово <em>вообще</em>.</p><p>В конце концов, программирование - это творчество, в котором результат достижим различными способами и обходиться без &quot;GoTo&quot; = один из них. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Thu, 21 Jun 2018 11:24:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126323#p126323</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126306#p126306</link>
			<description><![CDATA[<p>Что касается выхода из функции через GoTo, то это просто нелогично. Функция должна вернуться к тому, кто её вызвал. Может и время возврата иметь значение. А в каких-то ситуациях GoTo удобно. Например, при ветвлении, где в конце нескольких веток нужно выполнить один и тот же код. Чтобы не прописывать его несколько раз, можно прыгать на метку с ним. Другой случай — реакция на ошибки после вызова нескольких подряд функций с освобождением каких-то создаваемых для них или получаемых от них ресурсов.<br /></p><div class="codebox"><pre><code>
call func_1
if error goto err_1
call func_2
if error goto err_2
call func_3
if error goto err_3
...
...
err_3:
    free res_3
err_2:
    free res_2
err 1:
    free res_1
</code></pre></div><p>В результате освобождение каждого ресурса прописано только один раз. А если писать это после каждого вызова, то они повторяются и нагромождаются, что может побудить просто забить на это дело.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 21 Jun 2018 06:03:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126306#p126306</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126294#p126294</link>
			<description><![CDATA[<p>Виноват, не проверил.</p><p>&quot;GoTo&quot; - не пользуюсь. Опасная штука. Злоупотребление грозит превратить код в &quot;<a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B0%D0%B3%D0%B5%D1%82%D1%82%D0%B8-%D0%BA%D0%BE%D0%B4">макароны</a>&quot;. Советую избегать его употребления чуть более, чем вообще, организуя подобное поведение циклами и таймерами.</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Wed, 20 Jun 2018 19:08:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126294#p126294</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126290#p126290</link>
			<description><![CDATA[<div class="codebox"><pre><code>
OnMessage(0xC, &quot;GetText&quot;)
Return

Block1:
    Msgbox, %x1%
    Return

GetText(wParam, lParam, msg, hwnd)
{
    global x1
    Params := StrGet(lParam)
    MsgBox %Params%
    StringSplit, Param, Params, |
    x1:=Param1
    SetTimer, Block1, -250
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Wed, 20 Jun 2018 16:48:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126290#p126290</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126288#p126288</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong> Пишет &quot;Error: Cannot jump from inside a function to outside&quot;, указывая на строчку <br /></p><div class="codebox"><pre><code>Goto block1</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (BeaNeaLol)]]></author>
			<pubDate>Wed, 20 Jun 2018 15:10:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126288#p126288</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126287#p126287</link>
			<description><![CDATA[<p>Объявите &quot;x1&quot; глобальной, а переход к метке поместите внутрь функции.<br /></p><div class="codebox"><pre><code>
Global x1
OnMessage(0xC, &quot;GetText&quot;)
GetText(wParam, lParam, msg, hwnd)
{
    Params := StrGet(lParam)
	MsgBox %Params%
    StringSplit, Param, Params, |
	x1:=Param1
	Goto block1
}

Block1:
    Msgbox, %x1%
	Goto Block1
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Wed, 20 Jun 2018 14:59:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126287#p126287</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Продолжение работы скрипта после OnMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=126283#p126283</link>
			<description><![CDATA[<p>Нужно сделать так, чтобы после включения скрипта, он ждал OnMessage, а после получения переходил к Block1, и при этом сохранилось значение x1<br /></p><div class="codebox"><pre><code>
OnMessage(0xC, &quot;GetText&quot;)
GetText(wParam, lParam, msg, hwnd)
{
    Params := StrGet(lParam)
	MsgBox %Params%
    StringSplit, Param, Params, |
	x1:=Param1
}

Goto block1

Block1:
    Msgbox, %x1%
	Goto Block1
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (BeaNeaLol)]]></author>
			<pubDate>Wed, 20 Jun 2018 14:01:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=126283#p126283</guid>
		</item>
	</channel>
</rss>
