<?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>http://forum.script-coding.com/viewtopic.php?id=13172</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=13172&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: ссылка на класс».]]></description>
		<lastBuildDate>Tue, 07 Nov 2017 15:04:52 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120895#p120895</link>
			<description><![CDATA[<div class="codebox"><pre><code>var2 := &quot;start&quot;
var[var2](i)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 07 Nov 2017 15:04:52 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120895#p120895</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120894#p120894</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>ObjBindMethod</p></blockquote></div><p>Да, именно то. Спасибо! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Tue, 07 Nov 2017 14:54:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120894#p120894</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120892#p120892</link>
			<description><![CDATA[<p><strong>MandarinKa02</strong>, если не поняли, экземпляр создается с помощью ключевого слова new.<br />Использовать классы, как это делаете вы, допустимо, но абсолютно неправильно.<br /></p><div class="codebox"><pre><code>y := new _class1, x := new _class2
x._caller := y, y.start(x)

class _class1 {
	start(x) {
		x.start(10) ;даем команду считать до ста
	}
	action(value) {
		Tooltip % value
	}
}
class _class2 {
	start(value) {
		Loop 100 {
			this._caller.action(A_Index)
			Sleep 10
		}
	}
}</code></pre></div><div class="quotebox"><cite>MandarinKa02 пишет:</cite><blockquote><p>var.%var2%(i)</p></blockquote></div><p>ObjBindMethod.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Tue, 07 Nov 2017 14:32:02 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120892#p120892</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120891#p120891</link>
			<description><![CDATA[<p><strong>stealzy</strong>, немного не то, что я хотел.</p><p><strong>KusochekDobra</strong>, тоже не совсем то.</p><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>MsgBox Start
_class2.set(Func(&quot;action&quot;))
_class1.start()
MsgBox End
Reload
return

action(value) {
	Tooltip % value
}

F5::Reload

class _class1 {
	start() {
		_class2.start(10) ;даем команду считать до ста
	}
	action(value) {
		Tooltip % value
	}
}


class _class2 {
	Static _func
	set(func) {
		this._func := func
	}
	start(value) {
		i := 0
		While(i != 100) {
			i+= 1
			func := this._func
			%func%(i)
			Sleep 10
		}
	}
}
</code></pre></div></div></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"><p>var&nbsp; := new _class1<br />var2 := &quot;start&quot;<br /><span style="color: red">var.%var2%(i)</span></p><br /><br /><p>class _class1 {<br />	start(value) {<br />		msgbox var=%value%<br />	}<br />}</p></div></div><p>т.е. вместо %var2% должно подставиться start-----&gt; var.start(i)</p>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Tue, 07 Nov 2017 14:22:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120891#p120891</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120864#p120864</link>
			<description><![CDATA[<p>Насколько помню, все объекты - это ссылочный тип. Тогда, чтобы иметь доступ к пространству имён какого-то класса, достаточно иметь его экземпляр:<br /></p><div class="codebox"><pre><code>
;MsgBox Start
oClass := New _class1()
oClass.start()
MsgBox End
;Reload
return

F5::Reload

class _class1 {
	lClass := {}
	__New() {
		this.lClass := New _class2()	; ссылка на пространство имён _class2
	}
	start() {
		this.lClass.Action(100) ;даем команду считать до ста
		this.action()
	}
	action() {
		Tooltip % this.lClass.counter
	}
}
class _class2 {
	counter := &quot;&quot;
	Action(value) {
		this.counter := 0
		while (this.counter &lt; value)
			this.counter++
	}
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Tue, 07 Nov 2017 00:19:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120864#p120864</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120862#p120862</link>
			<description><![CDATA[<div class="quotebox"><cite>MandarinKa02 пишет:</cite><blockquote><p>_class1.Action(i) здесь не пойдет</p></blockquote></div><p>Тогда уж _class1.myCounter := i.<br />А вообще, откуда по-вашему вызываемый класс должен знать переменные вызывающего?<br /></p><div class="codebox"><pre><code>_class2.Start(10, this.counter)
...
Start(value, ByRef callerCounter)
...
callerCounter := A_Index</code></pre></div><p>Думаю, мысль понятна.<br />Подобным же образом можно передать и экземпляр класса. Принимаем его в переменную <em>caller</em> и присваиваем <em>caller.counter := A_Index</em>.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Mon, 06 Nov 2017 22:34:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120862#p120862</guid>
		</item>
		<item>
			<title><![CDATA[AHK: ссылка на класс]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=120861#p120861</link>
			<description><![CDATA[<p>Всем привет, есть два класса. Один класс дает второму задание: считать постепенно до 100.<br />Допустим вот:<br /></p><div class="codebox"><pre><code>
MsgBox Start
_class1.start()
MsgBox End
Reload
return

F5::Reload

class _class1 {
	start() {
		_class2.start(10) ;даем команду считать до ста
	}
	action(value) {
		Tooltip % value
	}
}


class _class2 {
	Static _func
	set(func) {
		this._func := func
	}
	start(value) {
		i := 0
		While(i != 100) {
			i+= 1
			;&lt;--сообщить значение--&gt;
			Sleep 10
		}
	}
}

</code></pre></div><p>Как сделать так чтобы после каждого подсчета(i++), второй класс посылал значение экземпляру первого. (т.к. это класс, а не функция и я собираюсь использовать в дальнейших скриптах, то _class1.action(i) здесь не пойдет.)</p>]]></description>
			<author><![CDATA[null@example.com (MandarinKa02)]]></author>
			<pubDate>Mon, 06 Nov 2017 20:51:59 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=120861#p120861</guid>
		</item>
	</channel>
</rss>
