Ich verwende folgende Funktion um Spalten eines Listenfeldes zu sortieren:
[autoit]
$listview_dateiliste = GUICtrlCreateListView("Dateiname|Typ", 18, 209, 265, 334)
GUICtrlSetOnEvent(-1, "_ListViewDateiSort")
Func _ListViewDateiSort()
_GUICtrlListView_SortItems($listview_dateiliste, GUICtrlGetState($listview_dateiliste))
EndFunc
Das Funktioniert auch soweit ganz gut.
Nur hätte ich gerne das die Sortierung gleich nach starten meines Programmes und dann Aufsteigernd durchgeführt wird.
Um das Verzeichnis nach dem starten einzulesen verwende ich folgende Funktion:
[autoit]
Func _DirOpen()
Local $aFilelist, $ordnername = GUICtrlRead($input_ordnername)
If $ordnername <>"" Then
If StringRight($ordnername, 1) <> "\" Then GUICtrlSetData($input_ordnername, $ordnername & "\")
If GUICtrlRead($combo_dateityp) = "IMAGE Dateien" Then
$aFilelist = _FileListToArrayEx($ordnername, "*.d*;*.g*;*.n*", 1)
Else
$aFilelist = _FileListToArray($ordnername, "*." & StringLeft(GUICtrlRead($combo_dateityp), 3), 1)
EndIf
If @error Then Return _GUICtrlListView_DeleteAllItems($listview_dateiliste)
_GUICtrlListView_DeleteAllItems($listview_dateiliste)
For $i = 1 To $aFilelist[0]
GUICtrlCreateListViewItem(StringTrimRight($aFilelist[$i], 4) & "|" & StringLower(StringRight($aFilelist[$i], 3)), $listview_dateiliste)
Next
_GUICtrlListView_SetColumnWidth(GUICtrlGetHandle($listview_dateiliste), 0, $LVSCW_AUTOSIZE)
EndIf
_ListViewDateiSort()
EndFunc
dabei dachte ich mir ich schmeiß die Sortierung ans Ende der Funktion.
Nur zieht das irgendwie nicht.
Ich leses gerade das _GUICtrlListView_SortItems nur auf Klicks in die Spaltenüberschrift reagiert.
Wie könnte ich das lösen?