Hey,
folgendes Problem:
Eine Listviewspalte soll wie gewöhnlich durch einen Klick auf den Header sortiert werden.
Allerdings nicht in beide Richtung sondern nur in eine:
1,3,2 -> 1,2,3 -> 1,2,3 (und nicht zu 3,2,1)
Abfragen des ersten und letzten Items und ggf. nochmal sortieren möchte ich aus Geschwindigkeitsgründen vermeiden.
Bei einer anderen Abfrage müsste man auch alle Items durchgehen. ![]()
Hier das Beispiel zum Probieren:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListview.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 327, 505, 192, 124)
$ListView1 = GUICtrlCreateListView("Test", 8, 16, 313, 401)
$Button1 = GUICtrlCreateButton("Button1", 112, 448, 105, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
global $hLVHandle = GUICtrlGetHandle($ListView1)
for $i = 0 to 50
GUICtrlCreateListViewItem(Random(1,100,1), $ListView1)
next
_GUICtrlListView_RegisterSortCallBack($hLVHandle)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
Exit
case $ListView1
_GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($ListView1))
EndSwitch
WEnd