Au vu de tes postes précédents, je me demande si tu ne cherches pas à faire un tri d'un ListViewGadget ?
au cas ou ...... on ne sait jamais et puis ça peut servir.
L'exemple ci dessous montre comment saisir des éléments dans une liste et de trier cette liste dans le sens ascendant ou descendant en passant par une structure.
Chaque fois que tu saisiras un élément, la liste est triée dans le sens ascendant.
Code : Tout sélectionner
EnableExplicit
Enumeration
#MainForm
#Myliste
#Element
#Btn_Ajout
#Btn_TriAscendant
#Btn_TriDescendant
EndEnumeration
;Cette structure servira pour le tri
Structure Liste
Colonne1.s
EndStructure
Global Dim Myliste.Liste(0), CountElement.i=-1
;Procedure de tri
Procedure MyListeSort(Sens.i=#PB_Sort_Ascending)
Protected i.i
;Trie de la structure
SortStructuredArray(Myliste(), Sens, OffsetOf(Liste\Colonne1), #PB_Sort_String)
;Affichage de la liste à l'écran
ClearGadgetItems(#Myliste)
For i=0 To CountElement
AddGadgetItem(#MyListe, -1, MyListe(i)\Colonne1)
Next
EndProcedure
;Affichage de l'écran
Procedure MainFormShow()
OpenWindow(#MainForm,0,0,500,400,"Trie d'une liste",#PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_SystemMenu)
ListViewGadget(#Myliste,10,10,300,300)
TextGadget(#PB_Any, 10, 320, 100, 20, "Element à ajouter")
StringGadget(#Element, 10, 340, 300, 20,"")
ButtonGadget(#Btn_Ajout, 320, 340, 80, 20, "Ajout")
ButtonGadget(#Btn_TriAscendant, 320,10,80,20,"Tri Ascendant")
ButtonGadget(#Btn_TriDescendant, 320,40,80,20,"Tri Descendant")
EndProcedure
MainFormShow()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_Ajout
If Trim(GetGadgetText(#Element))<>""
CountElement=CountElement+1
ReDim Myliste(CountElement)
;Ajout de l'element dans la liste à l'écran
AddGadgetItem(#Myliste, -1, GetGadgetText(#Element))
;Ajout de l'element dans la structure et reset du champ de saisie
Myliste(CountElement)\Colonne1=GetGadgetText(#Element)
SetGadgetText(#Element,"")
;Trie de la liste
MyListeSort()
EndIf
Case #Btn_TriAscendant
MyListeSort(#PB_Sort_Ascending)
Case #Btn_TriDescendant
MyListeSort(#PB_Sort_Descending)
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Cette exemple est tres facilement adaptable pour un ListIconGadget en ajoutant des colonnes à la structure.