Page 1 sur 1

Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 13:49
par Micoute
Bonjour à tous,

Pour un programme de publipostage, j'ai fait une recherche désespérée dans le forum et je n'ai rien trouvé qui réponde à ma question,
j'explique mon problème : j'ai un combo pour sélectionner un groupe et en fonction de mon choix ça me remplir une listIcon avec des cases à cocher et selon l'état de cette case à cocher,
je parcours ma liste et si une case est cochée, je récupère le destinateur associé et j'imprime le courrier auquel j'inclue les données dont j'ai besoin.

Je vous remercie de votre aide.

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 14:48
par Christophe
Bonjour Micoute, je ne sais pas si c'est ce que tu recherches...

Code : Tout sélectionner

Procedure TestCheck()
  Debug "Liste des Nom(s) Coché"
  For x=0 To CountGadgetItems(0)-1
    If GetGadgetItemState(0, x) = #PB_ListIcon_Checked
      Debug GetGadgetItemText(0, x)
    EndIf
  Next
EndProcedure


OpenWindow(0,0,0,600,400,"ListIcon CheckBox", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,10,10,580,300, "Nom", 80, #PB_ListIcon_CheckBoxes)
For x = 0 To 30
  AddGadgetItem(0,-1, "nom "+Str(x))
Next
ButtonGadget(1,250,325,100,50,"Check ?")

Repeat
  e = WaitWindowEvent()
  Select e
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          TestCheck()
      EndSelect
  EndSelect
  
Until e = #PB_Event_CloseWindow

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 14:49
par Ollivier
Bonjour Micoute,

soluce :

GetGadgetItemState

Code : Tout sélectionner

Select GetGadgetItemState(ListIconNumero, ListIconItemNumero)
   Case #PB_ListIcon_Checked
      Debug "Coché"
   Case #PB_ListIcon_Inbetween
      Debug "Entre deux eaux"
   Default
      Debug "Pas coché"
EndSelect
(et hop... Une soufflette à Christophe que j'avais pas vu... On va devoir se partager le "check" de Micoute !!! Dommage ! )

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 14:50
par Marc56
Bonjour Micoute,

Pour récupérer les numéros de ligne dont la case est cochée, il suffit de tester leur état avec GetGadgetItemState()
Celui-ci doit retourner #PB_ListIcon_Checked

Petit exemple complet

Code : Tout sélectionner

OpenWindow(0, 100, 100, 300, 300, "", #PB_Window_SystemMenu)

; Créer la listicon
ListIconGadget(0, 5, 5, WindowWidth(0) - 10, WindowHeight(0) - 10, "", 100, #PB_ListIcon_CheckBoxes)

; Remplir 
For i = 1 To 10
    AddGadgetItem(0, -1, "Ligne: " + Str(i))    
Next

; Cocher quelques cases au hasard
; #PB_ListIcon_Checked = 2
For i = 1  To 10
    SetGadgetItemState(0, i, Random(2, 1))
Next

; Relever les cases cochées
; GetGadgetItemState()

Debug "Lignes cochées: "
For i = 1  To 10
    If GetGadgetItemState(0, i) = #PB_ListIcon_Checked
        Debug Str(i+1)
    EndIf
Next

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Ne pas oublier que la première ligne est identifiée 0, donc il faut décaler.

:wink:

Edit: 3 solutions en moins de 2 minutes, et on dit que ce forum est inactif :P

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 14:53
par Ollivier
Pfrôlàlàh... Je retourne dans ma grotte... C'est pas du juste !

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 14:59
par Micoute
Merci à tous les deux, je me demande pourquoi j'utilise mon ordinateur plus que mon cerveau.

Re: Récupérer les états des cases cochées dans une listIcon

Publié : mer. 23/oct./2019 16:36
par Ollivier
Tous les trois Micoute : on a été 3 à te répondre! A croire que t'avais mis une récompense.

Bon courage.