<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Отслеживание события установки значения массива]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11227&amp;type=atom" />
	<updated>2016-01-17T13:29:04Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11227</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отслеживание события установки значения массива]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=100417#p100417" />
			<content type="html"><![CDATA[<p>А почему нельзя просто получить содержимое массива просто вызвав например в msgbox:<br /></p><div class="codebox"><pre><code>msgbox % object.A</code></pre></div><p>А только через __Get.<br />Я вот такую паутину намотал, вроде работает. Есть более простой вариант?<br /></p><div class="codebox"><pre><code>object := {_:{}}
object.base := {}
object.base.__Set := Func(&quot;Set_Event_Object&quot;)
object.base.__Get := Func(&quot;Get_Event_Object&quot;)

Set_Event_Object(_,var,value){
	msgbox % &quot;Событие __Set`n&quot; var &quot;`n&quot; value
	return _._.Insert(var,value)
}

Get_Event_Object(_,var){
 return _._[var]
}
;-------------------------------------------

object.A := 1
object.A := 2
object.B := 3

msgbox % object.A &quot;`n&quot; object.B
Return
</code></pre></div><p>Нашел все таки без __get сделать:<br /></p><div class="codebox"><pre><code>object := {}
object.base := {}
object.base.__Set := Func(&quot;Set_Event_Object&quot;)

Set_Event_Object(_,var,value){
	msgbox % &quot;Событие __Set`n&quot; var &quot;`n&quot; value
    return _.base.Insert(var, value)
}

;-------------------------------------------

object.A := 1
object.A := 2
object.B := 3


msgbox % object.A &quot;`n&quot; object.B
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2016-01-17T13:29:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=100417#p100417</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Отслеживание события установки значения массива]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=100383#p100383" />
			<content type="html"><![CDATA[<p>Функция должна вернуть правду.<br /></p><div class="codebox"><pre><code>object := {}
object.base := {}
object.base.__Set := Func(&quot;Set_Event_Object&quot;)

Set_Event_Object(_,var,value){ 
	msgbox % var &quot;`n&quot; value 
	Return 1
}
;-------------------------------------------

object.A := 1
object.B := 1

object.A := 2

test.C := 3
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-01-16T15:15:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=100383#p100383</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Отслеживание события установки значения массива]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=100377#p100377" />
			<content type="html"><![CDATA[<p>Есть такая функция:<br />Эта функция отслеживает установку новой переменной внутри <strong>object</strong>, но проблема в том что, когда пытаюсь переназначить уже существующую переменную, события не происходит.<br /></p><div class="codebox"><pre><code>  object := {}
, object.base := {}
, object.base.__Set := Func(&quot;Set_Event_Object&quot;)

Set_Event_Object(_,var,value){
	msgbox % var &quot;`n&quot; value
}
;-------------------------------------------

object.A := 1
object.B := 1

object.A := 2

test.C := 3</code></pre></div><br /><br /><p>А вот еще один скрипт:<br />Суть его тоже самая, этот вариант видит событие изменения, но видит во всех массивах, а нужно что бы только в object.<br /></p><div class="codebox"><pre><code>  &quot;&quot; := {}
, object.base := {}
, object.base.__Set := Func(&quot;Set_Event_Object&quot;)

Set_Event_Object(_,var,value){
	msgbox % var &quot;`n&quot; value
}
;-------------------------------------------

object.A := 1
object.B := 1

object.A := 2

test.C := 3</code></pre></div><p>Можно ли доделать один из вариантов что бы работа была только с одним массивом и видело изменения?</p><p>p.s первый и второй вариант отличаются только первой строкой.</p>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2016-01-16T10:21:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=100377#p100377</id>
		</entry>
</feed>
