<?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=10840&amp;type=atom" />
	<updated>2015-08-01T10:10:16Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10840</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Динамическое количество изображений в GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96167#p96167" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2015-08-01T10:10:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96167#p96167</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Динамическое количество изображений в GUI]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96162#p96162" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2015-07-31T22:52:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96162#p96162</id>
		</entry>
</feed>
