Aide sur les Interfaces Graphique Utilisateurs (GUI).
jpascal
Niveau 6
Messages : 239 Enregistré le : jeu. 16 oct. 2008 16:21
Status :
Hors ligne
#1
Message
par jpascal » mar. 13 août 2024 09:43
Bonjour,
Je sauvegarde la colonne qui est utilisée pour trier les données de ma listview avec ce code dans la fonction WM_NOTIFY :
Est-il possible de sauvegarder également l'ordre de tri (ascendant/descendant) ?
Modifié en dernier par
jpascal le mer. 14 août 2024 09:28, modifié 1 fois.
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Nine
AutoIt MVPs (MVP)
Messages : 137 Enregistré le : ven. 17 avr. 2020 01:23
Localisation : Montréal, Québec
Status :
Hors ligne
#2
Message
par Nine » mar. 13 août 2024 13:02
Ajoute ces lignes après le sort :
Code : Tout sélectionner
$hHeader = _GUICtrlListView_GetHeader($hWndFrom)
$iFormat = _GUICtrlHeader_GetItemFormat($hHeader, DllStructGetData($tInfo, "SubItem"))
If BitAND($iFormat, $HDF_SORTDOWN) Then ConsoleWrite("Down" & @CRLF)
If BitAND($iFormat, $HDF_SORTUP) Then ConsoleWrite("Up" & @CRLF)
jpascal
Niveau 6
Messages : 239 Enregistré le : jeu. 16 oct. 2008 16:21
Status :
Hors ligne
#3
Message
par jpascal » mer. 14 août 2024 09:27
Merci Monsieur Nine
Pour ceux que ça intéresse, voici le code induit par cette modif :
Dans WM_NOTIFY() :
Switch $iCode Case $LVN_COLUMNCLICK $tInfo = DllStructCreate ( $tagNMLISTVIEW , $lParam ) Switch DllStructGetData ( $tInfo , "SubItem" ) _GUICtrlListView_SortItems ( $iIDFrom , DllStructGetData ( $tInfo , "SubItem" ) ) RegWrite ( $g_sRegKeyApp , 'Order' , 'REG_SZ' , DllStructGetData ( $tInfo , "SubItem" ) ) Local $hHeader = _GUICtrlListView_GetHeader ( $iIDFrom ) Local $iFormat = _GUICtrlHeader_GetItemFormat ( $hHeader , DllStructGetData ( $tInfo , "SubItem" ) ) RegWrite ( $g_sRegKeyApp , 'Descending' , 'REG_DWORD' , BitAND ( $iFormat , $HDF_SORTDOWN ) ?
1 :
0 )
Et lors du démarrage de l'appli :
Local $iOrder = RegRead ( $g_sRegKeyApp , 'Order' ) If @error Then $iOrder = 3 ; colonne triée par défaut Local $iDescending = RegRead ( $g_sRegKeyApp , 'Descending' ) If @error Then $iDescending = 0 ... ; Récupération de données dans $aData ... _ArraySort ( $aData , $iDescending , 0 , 0 , $iOrder ) ; tri des données
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1