Что нового

[Баг] Неправильная работа _GUICtrlListBox_AddString

britanec74

Знающий
Сообщения
22
Репутация
8
Сегодня заметил что функция _GUICtrlListBox_AddString сортирует список, при добавлении новой строки, даже если ListBox не имеет стиль $LBS_SORT. Строка в конец никак не попадает.
Описание в русской справке:
"Если ListBox не имеет стиль $LBS_SORT, то строка добавляется в конец списка. Иначе, строка добавляется в список и он сортируется."

Приходится использовать _GUICtrlListBox_InsertString


Пример:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("Form1", 302, 98, 302, 218)
GUISetOnEvent(-3, "SpecialEvents")
GUISetFont(8, 800, 0, "MS Sans Serif")
$List1 = GUICtrlCreateList("", 0, 0, 126, 97)
GUICtrlSetData(-1, '1|2|3|4|5|6')
$List2 = GUICtrlCreateList("", 175, 0, 126, 97)
$add = GUICtrlCreateButton("+", 135, 5, 30, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUICtrlSetOnEvent($add, "add")
Func SpecialEvents()
	Select
		Case @GUI_CtrlId = $GUI_EVENT_CLOSE
			Exit
	EndSelect
EndFunc   ;==>SpecialEvents
Func add()
	_GUICtrlListBox_AddString($List2, GUICtrlRead($List1))
EndFunc   ;==>add

While 1
	Sleep(100)
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
britanec74,
Пример дайте.
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
По умолчанию устанавливается стиль , имеющий в своем составе стиль $LBS_SORT

Достаточно поставить :
Код:
$List2 = GUICtrlCreateList("", 175, 0, 126, 97, ''); ''  или 0 или $WS_HSCROLL и т.п.

и все будет ОК


Добавлено:
Сообщение автоматически объединено:

Из справки :
Код:
По умолчанию: $LBS_SORT, $WS_HSCROLL, $WS_VSCROLL, $WS_BORDER
 

AZJIO

Меценат
Меценат
Сообщения
2,768
Репутация
1,156
gregaz
Там 0, чтобы лишний раз не вызывать приведение типа данных.
 
Автор
B

britanec74

Знающий
Сообщения
22
Репутация
8
Спасибо за ответы.
Да, невнимательно прочел справку. Что стоит по умолчанию не посмотрел.
 
Верх