Что нового

правильный вывод в List

mashino

Новичок
Сообщения
21
Репутация
0
Господа. Не могу решить. помогите.
Есть такая функция _Log. В созданный GUICtrlCreateList кидает нужные сообщения по ходу программы.
Проблема в том, что данные которые выводятся (а их очень много) должны идти последовательно. Вверху самое последнее добавление, а внизу первое (направление верх/низ неважно, главное чтоб скроллинг прокручивался на последнюю строку)
Но автоматически весь текст, выводимый в List, сортируется по алфавиту этого самого текста.
Как сортировать чтоб последний добавленный текст был наверху?
Или посоветуйте другой элемент, не GUICtrlCreateList

Код:
$LogList = GUICtrlCreateList("",260,48,350,100)

Func _Log($text)

	GUICtrlSetData($LogList, $text); & @CRLF)
	GUICtrlRead($LogList)
sleep(1)

EndFunc

Спасибо
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
mashino
Возможно, лучше использовать элемент ListView.
Там есть стили сортировки по возростанию-убыванию.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А если сортировку отключить?
Код:
$LogList = GUICtrlCreateList("",260,48,350,100,  0x1101)
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
mashino
GUICtrlCreateList поддерживает клик по пункту, а для лога лучше использовать GUICtrlCreateEdit.

Из справки к GUICtrlCreateList
Код:
; чтобы отключить сортировку в списке используйте стиль $WS_BORDER+$WS_VSCROLL+$LBS_NOINTEGRALHEIGHT

там же
Код:
GUICtrlSendMsg($mylist, $LB_INSERTSTRING, 3, 'Вставлен в позицию 3')
 
Автор
M

mashino

Новичок
Сообщения
21
Репутация
0
извините за долгое молчание. Болезнь скосила.
Остановился на таком варианте:
Код:
#include <EditConstants.au3>;обязательно!
#include <GUIConstants.au3>
$LogList = GUICtrlCreateEdit ("",260,48,350,100, $ES_AUTOVSCROLL+$WS_VSCROLL)


Func _Log($text)

	GUICtrlSetData($LogList& @CRLF, $text,1)
	GUICtrlSetData("",@CRLF,1);насчет этой строки не уверен что нужна. оставил т.к. спешил

sleep(1)

EndFunc


вызов функции в таком виде:
Код:
_Log("my text" & @CRLF)
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
mashino
Перенос строк нужно прилеплять к тексту, а не к идентификатору
 
Автор
M

mashino

Новичок
Сообщения
21
Репутация
0
спасибо за комментарий. болею, не досмотрел. а я то думал, чего он выкаблучивается :smile:
 
Верх