<?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=10840</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10840&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Динамическое количество изображений в GUI».]]></description>
		<lastBuildDate>Sat, 01 Aug 2015 10:10:16 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Динамическое количество изображений в GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=96167#p96167</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>их может быть разное количество(от 1 до 10).</p></blockquote></div><p>Для любого количества.<br /></p><div class="codebox"><pre><code>
inX1 := 121.0988922, inX2 := 454.7867432
inY1 := 85.5152516, inY2 := -350.3629761

inW := Abs(inX2-inX1), inH := Abs(inY2-inY1)

guiW := 200, guiH := Ceil(guiW * (inW / inH)) ; ширина карты

markW := 5, markH := 5 ; размеры маркера
PrCount := 0
 
Gui, Margin, 0, 0
Gui, Color, DA952D
Gui -DPIScale +AlwaysOnTop
Gui, Show, % &quot; NA w&quot; guiW + markW &quot; h&quot; guiH + markH 
 
Loop 
{ 
    Random, Count, 1, 20
    If (Count &lt; PrCount)
        Loop % PrCount - Count 
            Index := Count + A_Index, DllCall(&quot;DestroyWindow&quot;, &quot;Ptr&quot;, hPoi%Index%)
    Else If (Count &gt; PrCount)
        Loop % Count - PrCount
            Gui, Add, Progress, % &quot;BackgroundD26419F w&quot; markW &quot; h&quot; markH &quot; hwndhPoi&quot; PrCount + A_Index  
    Loop % PrCount := Count
    {
        Random, X, inX1, inX2
        Random, Y, inY2, inY1
        RelativeMovePoi(X, Y, hPoi%A_Index%) 
    } 
    SetTimer, Flash, % &quot;-&quot; (SH := 0)
    Gui, Show, NA, % Count
    Sleep 888
} 
 
RelativeMovePoi(posX, posY, HWND)  {  
    Local outX, outY
    outX := guiW * (Abs(posX - inX1) / inW) 
    outY := guiH * (Abs(posY - inY1) / inH) 
    GuiControl, Move, %HWND%, x%outX% y%outY% 
}

Flash: 
    Loop % Count + ((SH := !SH) * 0)
        GuiControl,  % SH ? &quot;Show&quot; : &quot;Hide&quot;, % hPoi%A_Index%
    SetTimer, Flash, -111
    Return 
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 01 Aug 2015 10:10:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=96167#p96167</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Динамическое количество изображений в GUI]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=96162#p96162</link>
			<description><![CDATA[<p>Доброй ночи.<br />Помогите пожалуйста разобраться кое в чем. <br />Это продолжение старой темы на этом сайте: <a href="http://forum.script-coding.com/viewtopic.php?id=8731">http://forum.script-coding.com/viewtopic.php?id=8731</a></p><p>Например возьмем код из поста номер 16 прошлой темы.<br />В этом коде происходит отображение точки на координатной плоскости.<br /></p><div class="codebox"><pre><code>inX1 := 121.0988922, inX2 := 454.7867432
inY1 := 85.5152516, inY2 := -350.3629761

inW := Abs(inX2-inX1), inH := Abs(inY2-inY1)

guiW := 200, guiH := Ceil(guiW * (inW / inH)) ; ширина карты
 
markW := 5, markH := 5 ; размеры маркера
 
Gui, Margin, 0, 0
Gui, Color, DA952D
Gui -DPIScale +AlwaysOnTop
Gui, Add, Progress, x205 y161 w%markW% h%markH% vPoi BackgroundD26419F
Gui, Show, % &quot; NA w&quot; guiW + markW &quot; h&quot; guiH + markH 

SetTimer, Flash, -1 

RelativeMovePoi(inX2, inY1)
Sleep 555
RelativeMovePoi(inX1, inY1)
Sleep 555
RelativeMovePoi(inX1, inY2) 
Sleep 555
RelativeMovePoi(inX2, inY2)  
Sleep 555
RelativeMovePoi(196.4629517, -256.4821167)
return


RelativeMovePoi(posX, posY)  {
    Global
    outX := guiW * (Abs(posX - inX1) / inW) 
    outY := guiH * (Abs(posY - inY1) / inH) 
    GuiControl, Move, Poi, x%outX% y%outY%
    GuiControl, Show, Poi
}

Flash: 
    GuiControl,  % (T := !T) ? &quot;Show&quot; : &quot;Hide&quot;, Poi
    SetTimer, Flash, -133  
    return </code></pre></div><p>Суть вопроса вот в чем. После подобного куска кода идет функция, которая считывает постоянно координаты xyz всех точек которые доступны в данную секунду, а их может быть разное количество(от 1 до 10). Так вот как сделать что бы эти точки отображались в gui в зависимости от количества?</p><p>Этот код для отображения одной точки. А как сделать чтобы их отображалось 3, а через 30 секунд их уже 5, а еще через минуту уже 2 и тд.<br /></p><div class="codebox"><pre><code>Gui, Margin, 0, 0
Gui, Color, DA952D
Gui -DPIScale +AlwaysOnTop
Gui, Add, Progress, x205 y161 w%markW% h%markH% vPoi BackgroundD26419F
Gui, Show, % &quot; NA w&quot; guiW + markW &quot; h&quot; guiH + markH 
</code></pre></div><p>Если бы количество точек было всегда точное то было бы проще.</p>]]></description>
			<author><![CDATA[null@example.com (Dworkin)]]></author>
			<pubDate>Fri, 31 Jul 2015 22:52:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=96162#p96162</guid>
		</item>
	</channel>
</rss>
