bonjour
je voudrais savoir
comment faire pour suuprimer un elements d'une liste
creer avec listicongadgets ( j'ai mis l'option chexbox)
que je veux faire c'est pouvoir cocher la case et ensuite dire au programme de la supprimer .
merci
Jbernard
comment faire pour suuprimer un elements d'une liste ????
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Comme ça, par exemple:
Code : Tout sélectionner
Enumeration
#MainWindow
#List
#Button
EndEnumeration
; Procedure de suppression
; Utilisation de la récursivité
Procedure RemoveGadget()
i = 0
Repeat
If GetGadgetItemState(#List, i) & #PB_ListIcon_Checked ; Si l'item est marqué
RemoveGadgetItem(#List,i); on le retire
ProcedureReturn RemoveGadget(); on rappelle la procedure
Else
i+1
EndIf
Until i >= CountGadgetItems(#List) Or CountGadgetItems(#List) = 0
EndProcedure
;- Crée la fenêtre et la GadgetList
If OpenWindow(#MainWindow, 0, 0, 320, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "")
If CreateGadgetList(WindowID())
ListIconGadget(#List, 10, 10, 300, 240, "Colonne 1", 280, #PB_ListIcon_MultiSelect|#PB_ListIcon_CheckBoxes)
ButtonGadget(#Button, WindowWidth()/2 -80, 270, 160, 20, "Dégage moi tout ça !")
;- Rempli la liste
For i.b = 1 To 12
AddGadgetItem(#List, -1, "Item "+Str(i))
Next i
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
Select EventGadgetID()
Case #Button ; Appel de la procédure de suppression
RemoveGadget()
EndSelect
Case #PB_EventCloseWindow : Quit = #True
EndSelect
Until Quit
EndIf
EndIf
End
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Dans la procedure, mets
au lieu de
Pour éviter le plantage au cas ou la liste n'aurait plus d'éléments.
Code : Tout sélectionner
If i < CountGadgetItems(#List)
ProcedureReturn RemoveGadget(); on rappelle la procedure
EndIf
Code : Tout sélectionner
ProcedureReturn RemoveGadget(); on rappelle la procedure
Dans ce cas, autant faire simple Chris:

Code : Tout sélectionner
For Element = 0 To CountGadgetItems(#ListIconGadget)-1
If GetGadgetItemState(#ListIconGadget,Element)=#PB_ListIcon_Checked
RemoveGadgetItem(#ListIconGadget, Element)
Element=Element-1
EndIf
Next
