comment faire pour suuprimer un elements d'une liste ????

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

comment faire pour suuprimer un elements d'une liste ????

Message par jbernard13 »

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
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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 
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci
j'ai resolu sans mettre la checkbox


merci

et comment marche les raccourci de menu ?


merci chris
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Dans la procedure, mets

Code : Tout sélectionner

If i < CountGadgetItems(#List)
   ProcedureReturn RemoveGadget(); on rappelle la procedure
EndIf
au lieu de

Code : Tout sélectionner

ProcedureReturn RemoveGadget(); on rappelle la procedure
Pour éviter le plantage au cas ou la liste n'aurait plus d'éléments.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

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
:)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Pourquoi faire simple quand on peut faire compliqué! (Proverbe Shaddok) :lol:
Répondre