1 (изменено: Stephan, 2017-07-08 23:20:15)

Тема: AHK: заморозка полосы прокрутки в Edit

Сразу извинюсь за возможно некорректное название, но другого ничего не приходит в голову. Поменяю, если предложите лучше).

Итак, код (это самодельный чат, очень неплохо работает):


FileDelete, %a_temp%/text.txt

InputBox, Nick, Chat, Введите свой ник, 

Gui,Add, Edit, x2 y-1 w470 h170 vlog ReadOnly, 
Gui,Add, Button, x382 y169 w90 h30 , Отправить
Gui,Font, S12 CDefault, Verdana
Gui,Add, Edit, x2 y169 w380 h30 r12 vText 
Gui,Show, x447 y316 h201 w478, Chat

Return
GuiControlGet, Text	
GuiControlGet, log
GuiControlGet, Nick


ButtonОтправить:



GuiControlGet, Text	
GuiControlGet, log

GuiControl,, text,

FileAppend, %Nick%: %Text%`n, %a_temp%/text.txt
FileRead, ChatText1, %a_temp%/text.txt


phpserver := "https://yxm1wmcnzrhk.000webhostapp.com/Index1.php"

URLDownloadToFile, %phpserver%?Text=%ChatText1%,%a_temp%/s.php

URLDownloadToFile, https://yxm1wmcnzrhk.000webhostapp.com/developer1.txt, %a_temp%/Chat.txt
FileRead, ChatText2, %a_temp%/Chat.php

FileRead, out, %a_temp%/Chat.txt


GuiControl, ,log, out
	
FileDelete, %a_temp%/text.txt

SetTimer, Refresh, 1000

refresh:
URLDownloadToFile, https://yxm1wmcnzrhk.000webhostapp.com/developer1.txt, %a_temp%/Chat.php
FileRead, ChatText2, %a_temp%/Chat.php
GuiControl, ,log, %ChatText2%
return



GuiClose:
FileDelete, %a_temp%/Chat.php
ExitApp

Можете запустить и попробовать, чтобы было понятнее. Теперь к проблеме.

Есть команда -- "SetTimer, Refresh, 1000", которая каждую секунду обновляет поле Edit с логом переписки (это нужно, чтобы сразу видеть ответ собеседника).

Все бы хорошо, но полоса прокрутки каждую секунду отлетает вверх, не давая посмотреть текст, находящийся внизу. Перелазил все, вплоть до запаривания с подсчетом и удалением строк, которые не помещаются в поле -- не работает.

Параметр r12 в поле Edit, (12 -- кол-во строк) который используется для ограничения строк игнорируется GuiControl. Очень жду помощи!))

PS: гифка, демонстрирующая проблему -- https://i.yapx.ru/MeYo.gif

2

Re: AHK: заморозка полосы прокрутки в Edit

Ctrl + End прокручивает в самый низ.

3

Re: AHK: заморозка полосы прокрутки в Edit

ypppu и что мне с этим делать в рамках моего скрипта????? Как мне это должно помочь???

4

Re: AHK: заморозка полосы прокрутки в Edit

MyText =
(
1
2
3
4
5
6
7
8
9
)

Gui,Add, Edit, x2 y-1 w470 h70 vlog ReadOnly, %MyText%
Gui,Add, Button, x382 y169 w90 h30 , Отправить
Gui,Font, S12 CDefault, Verdana
Gui,Add, Edit, x2 y169 w380 h30 r12 vText 
Gui,Show, x447 y316 h201 w478, Chat
;ControlSend, Edit1, ^{End}, Chat
Return

Раскомментируйте строку - увидите разницу.

5

Re: AHK: заморозка полосы прокрутки в Edit

FileDelete, %a_temp%/text.txt

InputBox, Nick, Chat, Введите свой ник, 

Gui,Add, Edit, x2 y-1 w470 h170 vlog hwndhEdit1 ReadOnly, 
Gui,Add, Button, x382 y169 w90 h30 , Отправить
Gui,Font, S12 CDefault, Verdana
Gui,Add, Edit, x2 y169 w380 h30 r12 vText 
Gui,Show, x447 y316 h201 w478, Chat

Return
GuiControlGet, Text	
GuiControlGet, log
GuiControlGet, Nick


ButtonОтправить:



GuiControlGet, Text	
GuiControlGet, log

GuiControl,, text,

FileAppend, %Nick%: %Text%`n, %a_temp%/text.txt
FileRead, ChatText1, %a_temp%/text.txt


phpserver := "https://yxm1wmcnzrhk.000webhostapp.com/Index1.php"

URLDownloadToFile, %phpserver%?Text=%ChatText1%,%a_temp%/s.php

URLDownloadToFile, https://yxm1wmcnzrhk.000webhostapp.com/developer1.txt, %a_temp%/Chat.txt
FileRead, ChatText2, %a_temp%/Chat.php

FileRead, out, %a_temp%/Chat.txt


GuiControl, ,log, out
	
FileDelete, %a_temp%/text.txt

SetTimer, Refresh, 1000

refresh:
	URLDownloadToFile, https://yxm1wmcnzrhk.000webhostapp.com/developer1.txt, %a_temp%/Chat.php
	FileRead, ChatText2, %a_temp%/Chat.php
	GuiControl, -Redraw, %hEdit1%
	GuiControl, , log, %ChatText2%
	SendMessage, 0x0E, , , , ahk_id %hEdit1%    ;  WM_GETTEXTLENGTH
	PostMessage, 0x00B1, Errorlevel, Errorlevel, , ahk_id %hEdit1%    ;  EM_SETSEL
	PostMessage, 0xB7,,,, ahk_id %hEdit1%    ;  EM_SCROLLCARET
	GuiControl, +Redraw, %hEdit1%
	Return


GuiClose:
	FileDelete, %a_temp%/Chat.php
	ExitApp
 
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.26.01 (Unicode 32-bit).

6

Re: AHK: заморозка полосы прокрутки в Edit

serzh82saratov Спасибо огромное!!! То, что нужно!!