<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Оптимизировать отзывчивость GUI]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11731</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11731&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Оптимизировать отзывчивость GUI».]]></description>
		<lastBuildDate>Sun, 19 Jun 2016 07:07:53 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105376#p105376</link>
			<description><![CDATA[<div class="codebox"><pre><code>Return hwnd = hGui &amp;&amp; controlname ~= &quot;^Static(1|2|3)$&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 19 Jun 2016 07:07:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105376#p105376</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105370#p105370</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (taravasya)]]></author>
			<pubDate>Sat, 18 Jun 2016 21:58:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105370#p105370</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105369#p105369</link>
			<description><![CDATA[<p>Буду за компьютером только через неделю, поэтому не возражаю, чтобы на вопросы по коду ответил кто-то другой.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 18 Jun 2016 20:40:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105369#p105369</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105368#p105368</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (taravasya)]]></author>
			<pubDate>Sat, 18 Jun 2016 20:11:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105368#p105368</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105307#p105307</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 16 Jun 2016 14:10:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105307#p105307</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105301#p105301</link>
			<description><![CDATA[<p>SetWinDelay?<br />SetControlDelay?</p>]]></description>
			<author><![CDATA[null@example.com (Foma)]]></author>
			<pubDate>Thu, 16 Jun 2016 12:59:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105301#p105301</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Оптимизировать отзывчивость GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=105285#p105285</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (taravasya)]]></author>
			<pubDate>Thu, 16 Jun 2016 08:49:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=105285#p105285</guid>
		</item>
	</channel>
</rss>
