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.
Edit: 3 solutions en moins de 2 minutes, et on dit que ce forum est inactif

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.