Saute mouton dans ListIconGadget() Why? mais Ouaï??

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Saute mouton dans ListIconGadget() Why? mais Ouaï??

Message par Jacobus »

Où est l'erreur please? Qu'est-ce que j'ai oublié pour que ça fonctionne comme ça que j'veux??

Dans le code suivant, le but est de supprimer des éléments en les sélectionnant (par exemple de 1 à 5) puis en cliquant sur le bouton prévu.
Seulement le code est très joueur et il n'en fait qu'à sa tête, c'est à dire qu'il remove qu'un item sur deux, Ahah! :?
Si alors on sélectionne un item sur deux, là il est content et les supprime.
Oui mais Pourquoi?? aaarrgh!

Code : Tout sélectionner

;Code PB4.01 à jour
Enumeration
#WIN
#LISTICON
#btnRemove
EndEnumeration 

  ExamineDesktops()
  Largeur$ = Str(DesktopWidth(0))
  Hauteur$ = Str(DesktopHeight(0))
  If Val(Largeur$)>800 And Val(Hauteur$)>600
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_TitleBar
  Else 
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar
  EndIf 
  
If OpenWindow(#WIN,0,0,400,550,"Test listicon" ,FlagWin)=0 Or CreateGadgetList(WindowID(#WIN))=0 
End 
EndIf 

   ButtonGadget(#btnRemove,10,5,150,20,"Remove Select Items")
   ListIconGadget(#LISTICON, 10,30,380,510, "INDEX", 380 , #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_MultiSelect)
   
   count=0
   For n = 0 To 20
   count=count+1
     AddGadgetItem(#LISTICON, -1 ," + Element n° "+Str(count))
   Next
   
   
Repeat 
  Event = WaitWindowEvent()   
  Select Event
    Case #PB_Event_Gadget 
      Select EventGadget()
      
      Case #btnRemove
        NbItems = CountGadgetItems(#LISTICON):Debug NbItems
            For ni = 0 To NbItems - 1
             Resultat = GetGadgetItemState(#LISTICON, ni)
               If Resultat & #PB_ListIcon_Selected
                 RemoveGadgetItem(#LISTICON, ni)
               EndIf 
            Next
            
            
            
      EndSelect 
  EndSelect 
  
Until Event = #PB_Event_CloseWindow
End 
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Code : Tout sélectionner

;Code PB4.01 à jour 
Enumeration 
#WIN 
#LISTICON 
#btnRemove 
EndEnumeration 

  ExamineDesktops() 
  Largeur$ = Str(DesktopWidth(0)) 
  Hauteur$ = Str(DesktopHeight(0)) 
  If Val(Largeur$)>800 And Val(Hauteur$)>600 
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_TitleBar 
  Else 
    FlagWin = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar 
  EndIf 
  
If OpenWindow(#WIN,0,0,400,550,"Test listicon" ,FlagWin)=0 Or CreateGadgetList(WindowID(#WIN))=0 
End 
EndIf 

   ButtonGadget(#btnRemove,10,5,150,20,"Remove Select Items") 
   ListIconGadget(#LISTICON, 10,30,380,510, "INDEX", 380 , #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_MultiSelect) 
    
   count=0 
   For n = 0 To 20 
   count=count+1 
     AddGadgetItem(#LISTICON, -1 ," + Element n° "+Str(count)) 
   Next 
    
    
Repeat 
  Event = WaitWindowEvent()    
  Select Event 
    Case #PB_Event_Gadget 
      Select EventGadget() 
      
      Case #btnRemove 
        NbItems = CountGadgetItems(#LISTICON):Debug NbItems 
            For ni = NbItems - 1 To 0 Step -1                ; <- Il faut effacer dans l'autre sens  8O 
             Resultat = GetGadgetItemState(#LISTICON, ni) 
               If Resultat & #PB_ListIcon_Selected 
                 RemoveGadgetItem(#LISTICON, ni) 
               EndIf 
            Next 
            
            
            
      EndSelect 
  EndSelect 
  
Until Event = #PB_Event_CloseWindow 
End 
@ peluche
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Merci LNA, :D srod vient de m'expliquer exactement la même chose sur le forum anglais.
le pire c'est que j'ai déjà eu le problème :? mais parfois ça ne revient pas...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre