Je viens de trouve le code SortList() sauf que je ne comprends pas trop comment l'utiliser avec ListName()
Dans l'aide il donne ça:
Code : Tout sélectionner
SortList(ListName(), Mode [, Debut, Fin])
Merci
Code : Tout sélectionner
SortList(ListName(), Mode [, Debut, Fin])
Code : Tout sélectionner
NewList MaListe.s()
AddElement(MaListe())
MaListe() = "Pomme"
AddElement(MaListe())
MaListe() = "Banane"
AddElement(MaListe())
MaListe() = "Chou"
AddElement(MaListe())
MaListe() = "Abricot"
Debug "-Avant le tri"
ForEach MaListe()
Debug MaListe()
Next
SortList(MaListe(), #PB_Sort_Ascending )
Debug "-Aprés le tri"
ForEach MaListe()
Debug MaListe()
Next
Chaque fois que tu inséres un élément tu lances le tri.David02 a écrit :Sauf que dans mon programme, il n'y a rien dans la liste.
Je rajoute des éléments après.
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