Что нового

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

vovsla

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

Yashied

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

vovsla

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

Yashied

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

:smile:
 
Автор
V

vovsla

Осваивающий
Сообщения
546
Репутация
26
Код:
#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 175
Репутация
2 331
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
 
Верх