Что нового

[Элементы GUI] Не могу понять, как сделать строки в GUICtrlCreateEdit "уходящими" в никуда

zero_1632

Новичок
Сообщения
15
Репутация
0
Есть цель сделать что-то вроде лога последних действий
Важно чтобы старые строки при получении новых "уезжали" совсем, то есть не жрали память.
Сейчас - несмотря на отсутствие вертикального скролла, можно "промотать" стрелками вверх-вниз на старые записи. Можно ли сделать свойствами контрола или надо считыватать его каждый раз, удалять старый, очищать весь и вносить уже с новым значением?
А еще, несмотря на $ES_READONLY, можно поставить курсор на произвольную часть старых строк, и оттуда начнется новое заполнение.
Как запретить контролу вообще реагировать на мышку или клаву?

Код:
#include <EditConstants.au3>
$Form1 = GUICreate("", 623, 285, 192, 114)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 601, 233, BitOR($ES_AUTOVSCROLL,$ES_READONLY))
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW,$Form1)
While 1
	GUICtrlSetData($Edit1, Random(1,100) & @CRLF,-1)
	sleep(300)
Wend
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
zero_1632 [?]
Как запретить контролу вообще реагировать на мышку или клаву?
Код:
; как вариант
GUICtrlSetState(-1,$GUI_DISABLE)

Или можно поверх элемента прозрачный Label создать, но в таком случае клавишей TAB всё-равно можно будет сфокусироваться на этом элементе, если нет стиля READONLY
 

AZJIO

Меценат
Меценат
Сообщения
2,901
Репутация
1,200
Верх