Se déplacer dans une ListIcon via un bouton

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Se déplacer dans une ListIcon via un bouton

Message par venom »

Bonjour,

Je ne comprend pas pourquoi mon code ne fonctionne pas, je souhaite sauter de ligne en appuyant sur un bouton

Code : Tout sélectionner

If OpenWindow(0, 100, 100, 300, 300, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 290, 200, "Nom", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_AlwaysShowSelection)
   AddGadgetItem(0, 0, "ID 0")
   AddGadgetItem(0, 1, "ID 1")
   AddGadgetItem(0, 2, "ID 2")
   AddGadgetItem(0, 3, "ID 3")
   AddGadgetItem(0, 4, "ID 4")
   
   ButtonGadget(1, 10, 250, 100, 20, "suivant", 0)
EndIf 
 
  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
          
        Case 1
         LigneSelectionner = GetGadgetItemState(0, #PB_ListIcon_Selected)

          LigneSelectionner = LigneSelectionner+1
          SetGadgetItemState(0, LigneSelectionner, #PB_ListIcon_Selected)

      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
Il passe bien de l'ID 0 a ID 1 et a ID 2 ensuite il retourne a ID 1 8O :?
Pourquoi






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Se déplacer dans une ListIcon via un bouton

Message par GallyHC »

Bonjour,

Voila un code qui fonctionne :

Code : Tout sélectionner

If OpenWindow(0, 100, 100, 300, 300, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 290, 200, "Nom", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_AlwaysShowSelection)
   AddGadgetItem(0, -1, "ID 0")
   AddGadgetItem(0, -1, "ID 1")
   AddGadgetItem(0, -1, "ID 2")
   AddGadgetItem(0, -1, "ID 3")
   AddGadgetItem(0, -1, "ID 4")
   
   ButtonGadget(1, 10, 250, 100, 20, "suivant", 0)
EndIf 

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
          
        Case 1
          iselected = GetGadgetState(0) + 1
          If iselected => CountGadgetItems(0)
            iselected = 0
          EndIf
          SetGadgetItemState(0, iselected, #PB_ListIcon_Selected)
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
Utilisation de "GetGadgetState()" au lieu de "GetGadgetItemState()" qui renvois l'état et pas la position.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Se déplacer dans une ListIcon via un bouton

Message par venom »

Merci GallyHC,

Arf... je n’étais pas loin :)






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Se déplacer dans une ListIcon via un bouton

Message par GallyHC »

Bonjour,

Aussi j'utilise "AddGadgetItem(0, -1, "")", en mettant la position à "-1", ce qui évite une erreur sur les index de position de l'élément. C'été pour te faire une petite précision.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Se déplacer dans une ListIcon via un bouton

Message par venom »

Merci pour ces précision






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre