[R] CheckBox bouton tout cocher

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

[R] CheckBox bouton tout cocher

#1

Message par m4sis »

Bonjour a tous,

j'ai farfouiller sur le net j'ai bien trouver des morceau de script qui m'interesse mais je me susi perdu :roll:

j'ai fait une interface graphique avec des checkbox et 4 boutons (tout cocher, décocher tout, retour et installer)

Comme je pense vous l'aurez compris j'arrive pas a trouver les bonne commande pour les bouton cocher et decocher et sur les deux autres bouton je ne me suis pas encore penché dessus j'essai d’avancer doucement :D

Voila mon code de l'interface c'est encore a l’étape de création ;)
► Afficher le texte
Modifié en dernier par m4sis le mar. 04 sept. 2012 20:51, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] CheckBox bonton tout cocher

#2

Message par mikell »

Code : Tout sélectionner

Case $Button1
    For $i = $Checkbox1 to $Checkbox23
        GuiCtrlSetState($i, $GUI_CHECKED)
    Next
Mais c'est limite, pour faire propre faudrait mettre les ids des checkbox dans une array

Code : Tout sélectionner

$Checkbox[0] = GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
etc
et faire la boucle For sur cette array
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bonton tout cocher

#3

Message par m4sis »

Pourquoi mettre les checkbox dans une array (tableau c'est bien ca)?
puisque la boucle comme ceci fonctionne?

Code : Tout sélectionner

For $i = $Checkbox1 to $Checkbox23

    GuiCtrlSetState($i, $GUI_CHECKED)
Next
car sa ajoute autant de ligne que de checkbox si je suis ta deuxième méthode, ou puisque ensuite je lance l'installe des programmes en array si je coche juste 3-4 sa posera moins de problemes?
► Afficher le texte
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] CheckBox bonton tout cocher

#4

Message par TommyDDR »

Parceque si vous faites cela :
► Afficher le textecode
le bouton aussi sera traité.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] CheckBox bonton tout cocher

#5

Message par mikell »

J'allais le dire :mrgreen:
m4sis a écrit :car sa ajoute autant de ligne que de checkbox si je suis ta deuxième méthode
ça rajoute rien du tout, et ça change strictement rien au déroulement du script
Je dirais même que une fois que tu as pris le coup, ça rend tes controles plus faciles à gérer ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#6

Message par m4sis »

j'ai du mal a comprendre
mikell a écrit :[code=text
Next[/code]Mais c'est limite, pour faire propre faudrait mettre les ids des checkbox dans une array

Code : Tout sélectionner

$Checkbox[0] = GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
etc
et faire la boucle For sur cette array
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#7

Message par mikell »

Bin oui quoi

Code : Tout sélectionner

$Checkbox[0] = GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
etc
......tralalah....
Case $Button1
    For $i = 0 to UBound($Checkbox)-1
        GuiCtrlSetState($Checkbox[$i], $GUI_CHECKED)
    Next
C'est ZE bonne méthode, ake sinon comme l'a dit TommyDDR ya possibilité de cagade ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#8

Message par m4sis »

Je veux bien croire que c'est la bonne méthode.
Mais je veux simplement comprendre le fonctionnement car si je recopie bêtement sans comprendre c'est inutile.

car moi j'ai

Code : Tout sélectionner

Global $Checkbox1= GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
d’ailleurs il apparait pas le global dans mon premier message je vien de m'en rendre compte.

Mikell me dit:

Code : Tout sélectionner

$Checkbox[0] = GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
je comprend pas les [] au niveau du 0
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#9

Message par PandiPanda »

Bonjour,
Connaissez vous la définition même "d'un tableau" appelé aussi "array" ?

vous pouvez lire ceci
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#10

Message par m4sis »

oui je m'aide beaucoup de ce site qui je trouve est relativement bien concus :D

mais la je coince vraiment
► Afficher le texte
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#11

Message par PandiPanda »

en quoi vous coincer? ^^

Vous allez stocker dans votre tableau les "ID" de chaque CheckBox. Un "ID", c'est ce qui lui permet d’être identifié par rapport à d'autre constituant de votre gui, cela ne reste qu'un nombre dont vous ne devez guère vous souciez ^^

Vous devez clairement faire la différente entre une variable quelconque et un array !
Il est plus simple de parcourir un tableau via un index (souvent i) qui ira de 0 jusqu'a la taille maximal-1 de ce tableau !

Prenons un exemple:
Disons que vous voulez afficher 6 msgBox() contenant 6 mots différent l'un de l'autre, quel est le moyen le plus court pour faire ceci?

1) Vous pouvez très bien crée 6 variables et écrire 6 msgBox() mais c'est plutôt lourd vous pensez pas ?
2) Utilisez un array et une boucle ? ^^

Voici le code du 2);
► Afficher le texte
Si vous avez vu, dans ma boucle il y'a de nouvelle variable, de fonction qui entre en jeux !
- Pourquoi $i=0 ? Simplement l'index qui permettra de parcourir le tableau (commence à 0)
- Pourquoi UBound($monArray)-1 ? Ubound($monArray), retourne la taille de mon tableau, ici 6 element !
Cependant, vous avez remarqué que je commence en "0" et non à "1", il faut donc que je m'arrête à 5, à savoir 6-1.

Edit : concernant votre code mit, il faudra faire un choix soit utilisé des variables indépendant l'une de l'autre à savoir vos 'Global CheckBox = xxx' Soit utilisé un array qui regroupera vos ID mais éviter d'utilisez les 2 en même temps ^^
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#12

Message par m4sis »

PandiPanda a écrit :
Edit : concernant votre code mit, il faudra faire un choix soit utilisé des variables indépendant l'une de l'autre à savoir vos 'Global CheckBox = xxx' Soit utilisé un array qui regroupera vos ID mais éviter d'utilisez les 2 en même temps ^^
Merci pour l'exemple je vois un peu plus clair, je débute dans la programmation donc c'est pas forcement facile a comprendre, mais j'essai :D

concernant les "GLOBAL" c'est parce que j'ai créer ma GUI avec Koda qui ma généré automatiquement ca, donc c'est pour ca que je suis confus car je suis met un array a la place de global ca va mettre la zone dans la GUI non?

Edit: je suis sur la bonne voie :D mais ma checkbox 2 ne se coche pas.. et j'ai voulu egalement couper mon array vu qu'il est long par &_ mais erreur de syntaxe..
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#13

Message par mikell »

Nan nan :mrgreen: fais-le proprement
1) tu déclares ton array
2) tu remplis ton array en même temps que tu fabriques tes checkbox

Code : Tout sélectionner

Dim $Gchkx[23]    ; et c'est tout

$Gchkx[0] = GUICtrlCreateCheckbox("7 Zip 9.2.0", 24, 16, 97, 17)
$Gchkx[1] = GUICtrlCreateCheckbox("Adobe Reader 9", 24, 40, 97, 17)
... etc jusqu'à $Gchkx[22]
après le reste c'est bon
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] CheckBox bouton tout cocher

#14

Message par m4sis »

Merci beaucoup ca fonctionne du coup j'ai enlevé les Global
► Afficher le texte
Répondre