<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Оптимизировать отзывчивость GUI]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11731&amp;type=atom" />
	<updated>2016-06-19T07:07:53Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11731</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105376#p105376" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Return hwnd = hGui &amp;&amp; controlname ~= &quot;^Static(1|2|3)$&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2016-06-19T07:07:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105376#p105376</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105370#p105370" />
			<content type="html"><![CDATA[<p>Наваял вот такое:<br /></p><div class="codebox"><pre><code>
#If CursorOverControl(hGui)
LButton::
RButton::
	MouseGetPos,,, hwnd, controlname
	if controlname = Static1
	{
		ControlGetText, curCopies, WindowsForms10.EDIT.app.0.3aa54a01, iCopy ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Количество
		GuiControl,, Static1, % A_ThisHotkey = &quot;LButton&quot; ? ++curCopies : --curCopies
		ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %curCopies%, iCopy
	}
	
	if controlname = Static2
	{
		ControlGetText, curBright, WindowsForms10.EDIT.app.0.3aa54a02, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Яркость
		GuiControl,, Static2, % A_ThisHotkey = &quot;LButton&quot; ? curBright += 10 : curBright -= 10
		ControlSetText, WindowsForms10.EDIT.app.0.3aa54a02, %curBright%, Настройки изображения
	}
	
	if controlname = Static3
	{
		ControlGetText, curContrast, WindowsForms10.EDIT.app.0.3aa54a01, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Контраст
		GuiControl,, Static3, % A_ThisHotkey = &quot;LButton&quot; ? curContrast += 10 : curContrast -= 10
		ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %curContrast%, Настройки изображения
	}
	Return
	
#If
CursorOverControl(hGui)
{
	MouseGetPos,,, hwnd, controlname
	if controlname = Static1
	{
		Return hwnd = hGui &amp;&amp; controlname = &quot;Static1&quot;
	}	
	
	if controlname = Static2
	{
		Return hwnd = hGui &amp;&amp; controlname = &quot;Static2&quot;
	}	
	
	if controlname = Static3
	{
		Return hwnd = hGui &amp;&amp; controlname = &quot;Static3&quot;
	}
	

}
</code></pre></div><p>С отзывчивостью контролов всё в порядке. Однако понимаю, что такое кол-во if-ов, не есть правильно. Буду весьма признателен, если кто-нибудь подскажет, как можно сократить код.</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2016-06-18T21:58:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105370#p105370</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105369#p105369" />
			<content type="html"><![CDATA[<p>Буду за компьютером только через неделю, поэтому не возражаю, чтобы на вопросы по коду ответил кто-то другой.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-06-18T20:40:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105369#p105369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105368#p105368" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, благодарю! немножко подредактировав под свои нужды, получил во такой код:<br /></p><div class="codebox"><pre><code>
#If CursorOverControl(hGui)
LButton::
RButton::
	ControlGetText, curCopies, WindowsForms10.EDIT.app.0.3aa54a01, iCopy ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Количество
	GuiControl,, Static1, % A_ThisHotkey = &quot;LButton&quot; ? ++curCopies : --curCopies
	ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %curCopies%, iCopy
	Return
	
#If
CursorOverControl(hGui)
{
	MouseGetPos,,, hwnd, controlname
	Return hwnd = hGui &amp;&amp; controlname = &quot;Static1&quot;
}
</code></pre></div><p>Но есть ещё вопрос, если не возражаете ))</p><p>Как теперь добавить условие, что-бы иметь возможность менять значение трёх разных контролов? Если обратите внимание, на код в первом посте, то увидите что у меня там есть ещё два текст-контрола, каждый из которых отображает свои значения из окна другой программы. Как Ваш код положить на все три контрола? К сожалению, я толком не понимаю, как работают директивы и как работает вот эта часть:<br /></p><div class="codebox"><pre><code>Return hwnd = hGui</code></pre></div><p>поэтому мои потуги добавить обработку ещё двух полей, превратились в тыканья слепого котенка ((((</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2016-06-18T20:11:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105368#p105368</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105307#p105307" />
			<content type="html"><![CDATA[<p>Пример:<br /></p><div class="codebox"><pre><code>Gui, +hwndhGui
Gui, Add, Text, w100 h50 +0x5
Gui, Add, Text, wp, 0
Gui, Show
Return

GuiClose:
	ExitApp

#If CursorOverControl(hGui)
LButton::
RButton::
	GuiControlGet, number,, Static2
	GuiControl,, Static2, % A_ThisHotkey = &quot;LButton&quot; ? ++number : --number
	Return
#If
	
CursorOverControl(hGui)
{
	MouseGetPos,,, hwnd, control
	Return hwnd = hGui &amp;&amp; control = &quot;Static1&quot;
}</code></pre></div><p>При щелчке по серому прямоугольнику левой кнопкой значение ниже будет увеличиваться, правой — уменьшаться.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-06-16T14:10:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105307#p105307</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105301#p105301" />
			<content type="html"><![CDATA[<p>SetWinDelay?<br />SetControlDelay?</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2016-06-16T12:59:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105301#p105301</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Оптимизировать отзывчивость GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=105285#p105285" />
			<content type="html"><![CDATA[<p>Здравствуйте! Сделал вот такой скрипт:<br /></p><div class="codebox"><pre><code>
DetectHiddenWindows, on
OnMessage(0x201, &quot;WM_LBUTTONDOWN&quot;)
OnMessage(0x204, &quot;WM_RBUTTONDOWN&quot;)
SetTimer, TimeCount, 500
Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow HwndGUIhWnd
Gui, Margin, 0, 0
Gui, Color, a1a1a1
Gui, Font, w900 cRed s12
Gui, Add, Text, +Center x5 y0 w25 h20 gAddCopies
Gui, Add, Text, +Center x45 y0 w25 h20
Gui, Add, Text, +Center x87 y0 w25 h20
Gui, Add, Picture, x0 y0, 0001.png
Gui, Show, % &quot;x&quot;A_ScreenWidth-120 &quot;y&quot;A_ScreenHeight-70
Return

TimeCount:
GetCurSettings(curCopies, curBright, curContrast)
ControlSetText, Static1, %curCopies%, % &quot;ahk_id&quot;GUIhWnd
ControlSetText, Static2, %curBright%, % &quot;ahk_id&quot;GUIhWnd
ControlSetText, Static3, %curContrast%, % &quot;ahk_id&quot;GUIhWnd
Return

AddCopies:
NewCopies = 0
NewCopies += (curCopies + 1)
ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %NewCopies%, iCopy

WM_LBUTTONDOWN()
{
	If A_Gui
	PostMessage, 0xA1, 2
}

WM_RBUTTONDOWN()
{
	GetCurSettings(curCopies, curBright, curContrast)
	MouseGetPos,,,,ControlName
	if ControlName = Static1
	{
		NewCopies = 0
		NewCopies := (curCopies - 1)
		ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %NewCopies%, iCopy
	}
}

GetCurSettings(ByRef val1, ByRef val2, ByRef val3)
{
	ControlGetText, curCopies, WindowsForms10.EDIT.app.0.3aa54a01, iCopy ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Количество
	ControlGetText, curBright, WindowsForms10.EDIT.app.0.3aa54a02, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Яркость
	ControlGetText, curContrast, WindowsForms10.EDIT.app.0.3aa54a01, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Контраст
	val1 := curCopies
	val2 := curBright
	val3 := curContrast
}
</code></pre></div><p>Его функционал меня устраивает. Всё отрабатывает надёжно и без ошибок. Но! Там есть один момент.<br />При клике левой мышки по текст-контроллу моего GUI, автоматически, на одну единицу, увеличивается значение в поле edit другой программы. При клике правой мышки, наоборот - это значение на единицу уменьшается. Этот процесс происходит быстро, только в первый раз и если мне нужно сделать несколько подряд изменений значения(например на три), то это происходит с маленькой паузой, что очень раздражает и просто притормаживает процесс, что является противоположностью того, ради чего я создавал этот скрипт. )))<br />Подскажите пожалуйста, как можно оптимизировать данную задачу?<br />(прошу не пинать за огрехи в коде(уверен таковые там имеются), код сделан нубски, &quot;собирательным&quot; методом... )</p>]]></content>
			<author>
				<name><![CDATA[taravasya]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33758</uri>
			</author>
			<updated>2016-06-16T08:49:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=105285#p105285</id>
		</entry>
</feed>
