<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Видимый переход к нужному месту в контроле Edit]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=9639</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=9639&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Видимый переход к нужному месту в контроле Edit».]]></description>
		<lastBuildDate>Sat, 10 Jan 2015 13:31:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=90262#p90262</link>
			<description><![CDATA[<p>а как быть с программами типа текстовых редакторов с функцией wrap lines? Как получить реальный индекс строки, а не индекс её части?</p>]]></description>
			<author><![CDATA[null@example.com (Drugoy)]]></author>
			<pubDate>Sat, 10 Jan 2015 13:31:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=90262#p90262</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83244#p83244</link>
			<description><![CDATA[<p>Всем спасибо, разобрался с EM_LINELENGTH, нашёл человечий перевод.<br />Пример перехода в конец нужной строки:<br /></p><div class="codebox"><pre><code>
    Row = 3
    SendMessage, 0xBB, Row - 1,,,ahk_id %hResult%    ;  EM_LINEINDEX 
    LINEINDEX := Errorlevel
    SendMessage, 0x00C1, LINEINDEX, , , ahk_id %hResult%    ;  EM_LINELENGTH
    RowEnd := Errorlevel+LINEINDEX
    PostMessage, 0x00B1, RowEnd, RowEnd, , ahk_id %hResult%    ;  EM_SETSEL 
    PostMessage, 0xB7,,,, ahk_id %hResult%    ;  EM_SCROLLCARET  
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 May 2014 18:25:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83244#p83244</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83242#p83242</link>
			<description><![CDATA[<p>Укороченный вариант:<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, r10 -Wrap +HScroll vResult hwndhResult w300   
Gui, Show 

Loop   
{
    GuiControlGet, Result
    GuiControl, , Result, % Result &quot;AddText. &quot; (Mod(A_Index, 25) &lt; 15 ? &quot;&quot; : &quot;`n&quot;) 
    SendMessage, 0x0E, , , , ahk_id %hResult%    ;  WM_GETTEXTLENGTH
    PostMessage, 0x00B1, Errorlevel, Errorlevel, , ahk_id %hResult%    ;  EM_SETSEL
    PostMessage, 0xB7,,,, ahk_id %hResult%    ;  EM_SCROLLCARET 
    Sleep 100
}
Return
</code></pre></div><p>Насчёт EM_LINELENGTH всё также интересно.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 May 2014 17:55:19 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83242#p83242</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83235#p83235</link>
			<description><![CDATA[<p>Вот только вопрос по EM_LINELENGTH, и по оптимальности решения.<br />Он что может узнать длинну только той строки, на которой каретка?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 May 2014 14:08:36 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83235#p83235</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83232#p83232</link>
			<description><![CDATA[<p>Вроде дошло:<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, r10 -Wrap +HScroll vResult hwndhResult w300   
Gui, Show 

Loop   
{
    GuiControlGet, Result 
    GuiControl, , Result, % Result &quot;AddText. &quot; (Mod(A_Index, 25) &lt; 15 ? &quot;&quot; : &quot;`n&quot;)
    Gosub GoLastChar 
    Sleep 100
}
Return
 
     
GoLastChar:   
    ControlGet, RowCount, LineCount,,, ahk_id %hResult% 
    SendMessage, 0xBB, RowCount - 1,,,ahk_id %hResult%    ;  EM_LINEINDEX
    LINEINDEX := Errorlevel
    SendMessage, 0x00B1, LINEINDEX, LINEINDEX, , ahk_id %hResult%    ;  EM_SETSEL
    SendMessage, 0x00C1, -1, , , ahk_id %hResult%    ;  EM_LINELENGTH
    LastPos := Errorlevel + LINEINDEX
    SendMessage, 0x00B1, LastPos, LastPos, , ahk_id %hResult%    ;  EM_SETSEL
    SendMessage, 0xB7,,,, ahk_id %hResult%    ;  EM_SCROLLCARET 
    Return
</code></pre></div><p>Или так:<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, r10 -Wrap +HScroll vResult hwndhResult w300   
Gui, Show 

Loop   
{
    GuiControl, , Result, % Result &quot;AddText. &quot; (Mod(A_Index, 25) &lt; 15 ? &quot;&quot; : &quot;`n&quot;) 
    Gosub GoLastChar 
    Sleep 100
}
Return
  
GoLastChar:    
    GuiControlGet, Result
    StringReplace, Str, Result, `n, ||, 1 
    StringReplace, Str, Str, `r, ||, 1 
    LastPos := StrLen(Str) 
    SendMessage, 0x00B1, LastPos, LastPos, , ahk_id %hResult%    ;  EM_SETSEL
    SendMessage, 0xB7,,,, ahk_id %hResult%    ;  EM_SCROLLCARET 
    Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 May 2014 14:02:52 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83232#p83232</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Видимый переход к нужному месту в контроле Edit]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=83226#p83226</link>
			<description><![CDATA[<p>Покурил тему <strong>teadrinker</strong> <a href="http://forum.script-coding.com/viewtopic.php?id=2631">AHK: Переход к нужной строке в контроле Edit окна GUI</a>, но так и не соображу.<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, r10 -Wrap +HScroll vResult hwndhResult w400
Gui, Show 
Loop
{
    GuiControlGet, Result
    GuiControl, -Redraw, Result
    GuiControl, , Result, % Result &quot;AddText. &quot; (Mod(A_Index, 20) &lt; 15 ? &quot;&quot; : &quot;`n&quot;)
    SetTimer, GoLastChar, -10
    Sleep Mod(A_Index, 20) &lt; 15 ? 100 : 200
}
Return


GoLastChar:   
    PostMessage, 0x00B1, StrLen(Result)*2, StrLen(Result)*2, , ahk_id %hResult%    ;  EM_SETSEL
    SendMessage, 0xB7,,,, ahk_id %hResult%    ;  EM_SCROLLCARET 
    ControlGet, LineCount, LineCount,,, ahk_id %hResult% 
    ControlGet, CurrentCol, CurrentCol,,, ahk_id %hResult%
    SendMessage, 0xB6, CurrentCol, LineCount,, ahk_id %hResult%    ;  EM_LINESCROLL
    GuiControl, +Redraw, Result
    GuiControl, Focus, Result
    Return
</code></pre></div><p>Хочется всегда видеть каретку у последнего символа, в данном случае скролл горизонтально не перемещается, да и вертикально каретку видно не всегда. Был вариант с горизонтальным перемещением, но вертикально не работало.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 22 May 2014 12:17:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=83226#p83226</guid>
		</item>
	</channel>
</rss>
