Что нового

Сортировка по убыванию в элементе GUI "LIST"

vovsla

Осваивающий
Сообщения
607
Репутация
36
По умолчанию сортировка чисел в "LIST" по возрастанию, т.е. на верху самое маленькое, а как сделать сортировку по убыванию, чтобы на верху было самое большое?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Добавь в стиль при создании списка $LVS_SORTDESCENDING.
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
так не работает, List получается пустым
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Чтобы понять, что именно не работает, нужно глянуть на исходный код, ну хоть одним глазком.

:smile:
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Код:
#include <GUIConstants.au3>

Opt("GUIOnEventMode", 1)

dim $LVS_SORTDESCENDING
$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$List1 = GUICtrlCreateList("", 80, 48, 73, 136, $LVS_SORTDESCENDING)
GUISetState(@SW_SHOW)

For $Num=1 To 9
GUICtrlSetData($List1, $Num)
Next

While 1
	Sleep(100)
WEnd
 

killbond

Осваивающий
Сообщения
96
Репутация
32
А ListView не подойдет? Вот мое решение:

Код:
#include <GUIConstants.au3>
#include <Array.au3>
#Include <GuiListView.au3>


Dim $Num [9] [2]

Opt("GUIOnEventMode", 1)


$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$List1 = GUICtrlCreateListView("", 80, 48, 73, 136, 0x0003)
GUISetState(@SW_SHOW)

For $i=0 To 8
$Num [$i] [0] = $i + 1
Next

_ArraySort($Num, 1, 0, 8, 0)

_GUICtrlListView_AddArray($List1, $Num)


;~ _ArrayDisplay($Num)

While 1
    Sleep(100)
WEnd
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Vovsla
Vovsla сказал(а):
:laugh: Это пустая переменная, она ведь не просто так там должна быть, нужно её использовать как константу, которая содержится в ListViewConstants.au3, но...

Yashied [?]
Добавь в стиль при создании списка $LVS_SORTDESCENDING
Это же для ListView :smile: Для List такого стиля нет вроде. Однако можно убрать стиль $LBS_SORT который принудительно сортирует записи:

Код:
#include <GUIConstantsEx.au3>
#include <ListBoxConstants.au3>
;

Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Form1", 633, 447, 193, 125)
GUISetOnEvent(-3, "_Quit")

$List1 = GUICtrlCreateList("", 80, 48, 73, 136, $GUI_SS_DEFAULT_LIST + BitNOT($LBS_SORT))
GUISetState(@SW_SHOW)

For $Num = 9 To 1 Step -1
	GUICtrlSetData($List1, $Num)
Next

While 1
    Sleep(100)
WEnd

Func _Quit()
	Exit
EndFunc
 
Верх