Code : Tout sélectionner
OpenWindow(0, 0, 0, 320, 170, "Trier la liste", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,10,10,300,130,"Noms",100,#PB_ListIcon_CheckBoxes)
AddGadgetColumn(0,1,"Prénom",100)
AddGadgetColumn(0,2,"N° de fiche",95)
AddGadgetItem(0,-1,"Gonzales"+Chr(10)+"Erwan"+Chr(10)+"412")
AddGadgetItem(0,-1,"Dugomier"+Chr(10)+"Sylvie"+Chr(10)+"38")
AddGadgetItem(0,-1,"Labarte"+Chr(10)+"Chantale"+Chr(10)+"84")
AddGadgetItem(0,-1,"Napoléon"+Chr(10)+"Premier"+Chr(10)+"1769")
AddGadgetItem(0,-1,"MoiMême"+Chr(10)+"Claude"+Chr(10)+"112")
ButtonGadget(1,10,145,90,20,"Tri par noms")
ButtonGadget(2,110,145,90,20,"Tri par prénoms")
ButtonGadget(3,210,145,90,20,"Tri par numéros")
Procedure.s TriListe(ordre.s)
Define enregistrement.s=""
UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "")
DatabaseUpdate(0, "create table temp (col1 VARCHAR(100), col2 varchar(100),col3 integer)")
For compteur=0 To CountGadgetItems(0)-1
enregistrement=""
enregistrement+"'"+GetGadgetItemText(0,compteur,0)+"',"
enregistrement+"'"+GetGadgetItemText(0,compteur,1)+"',"
enregistrement+"'"+GetGadgetItemText(0,compteur,2)+"'"
DatabaseUpdate(0,"insert into temp values("+enregistrement+")")
Next
ClearGadgetItems(0)
DatabaseQuery(0,"Select * from temp order by "+ordre)
While NextDatabaseRow(0)
AddGadgetItem(0,-1,GetDatabaseString(0,0)+Chr(10)+GetDatabaseString(0,1)+Chr(10)+GetDatabaseString(0,2))
Wend
EndProcedure
Repeat
action = WaitWindowEvent()
If action = #PB_Event_Gadget
Select EventGadget()
Case 1:TriListe("col1")
Case 2:TriListe("col2")
Case 3:TriListe("col3")
EndSelect
EndIf
Until action = #PB_Event_CloseWindow
Si vous voulez compléter, merci d'avance.
Bon usage et salut à tous