Page 1 sur 1

[R] CheckBox

Posté : sam. 06 mars 2010 09:44
par Mikaas
Bonjour j'ai un petit souci avec la reconnaissance de mes checkbox :(
► Afficher le texteMon code de base
dans un ini il ajoute la ligne : 1 si coché, 0 si vide
j'aimerai qu'à sa ré ouverture du exe il mette par défaut les valeurs du ini

ex :

si "test.ini", "SETTING", "1" = 1 il coche la checkbox correspondante au démarrage du script si c'est = à 0 alors il reste vide ...

Merci pour l'aide ;)

Re: [..] CheckBox

Posté : sam. 06 mars 2010 10:15
par Sparkdaemon

Code : Tout sélectionner

If $TON_INI = 1 then Guictrlsetdata($CheckBox1, $GUI_CHECKED)

Re: [..] CheckBox

Posté : sam. 06 mars 2010 10:19
par Tlem
Je ne vois pas très bien ou est la difficulté dans votre demande !!!

Puisque vous voulez appliquer des valeurs en fonction d'un fichier .ini, la première chose sera de lire ce fichier. ;)

Le plus simple sera sans doute de rajouter juste avant l'affichage de votre GUI (GUISetState(@SW_SHOW)) le lancement d'une fonction qui mettra à jour vos CheckBox.

Dans cette fonction, on contrôle d'abord la présence du fichier .ini et on continue (si existant).
Ensuite, pour chaque valeur de CheckBox lue à partir du fichier .ini, on applique l'état :

Code : Tout sélectionner

; Pour infos :
 ; $GUI_CHECKED = 1 et $GUI_UNCHECKED = 4 voir GUIConstantsEx.au3

GUICtrlSetState($check1, $GUI_CHECKED)
;ou
GUICtrlSetState($check1, $GUI_UNCHECKED)
Edit : Coiffé sue le poteau par sparky. :lol:
Mais je laisse quand même mon message.

Re: [..] CheckBox

Posté : sam. 06 mars 2010 10:22
par Mikaas
Sparkdaemon a écrit :

Code : Tout sélectionner

If $TON_INI = 1 then Guictrlsetdata($CheckBox1, $GUI_CHECKED)
$TON_INI ?
ne serai t'il pas plus correct :

If $check1 = 1 then Guictrlsetdata($CheckBox1, $GUI_CHECKED) ?

si oui cela ne fonctionne pas :(
sinon je vois pas se que peut représenté les $TON_INI

Re: [..] CheckBox

Posté : sam. 06 mars 2010 10:38
par Tlem
Pfffff !!!
$TON_INI représente la valeur de l'état de votre CheckBox dans le fichier .ini.

Ensuite, pour lire l'état d'une CheckBox, ce n'est pas comme cela qu'on procède. Vous trouverez la réponse dans la partie Remarks de l'aide de la commande GUICtrlRead().

Et enfin, pourquoi contrôler l'état de vos CheckBox puisque vous voulez placer les valeurs du fichier .ini. En procédant comme cela, vous rajoutez une étape totalement inutile ...

Re: [..] CheckBox

Posté : sam. 06 mars 2010 11:08
par Mikaas
Tous simplement pour ne pas a avoir de nouveau a le configurer lorsque j'ouvre le script :roll:

si je termine de nouveau le script sans cocher a chaque ouverture il est 0 donc c'est pas se que je cherche :s

@Tlem : à chaque fois que je pose une question, j'ai bien l'impression de vous faire chier ...
Si c'est le cas suffit de le dire clairement on trouvera une solution.
Au pire des cas pas obligé de me répondre ...

Edit : Le ini n'est pas la pour regarder les choses inscrite dedant les utilisateurs ne verrons que la GUI, si après l'ouverture il affiche coché ou non selon le choix du ini on saura si oui ou non nous avions bien selectionné la checkbox auparavant et qu'il à bien été enregistré ...

Re: [..] CheckBox

Posté : sam. 06 mars 2010 11:09
par Tlem
Mikaas a écrit :@Tlem : à chaque fois que je pose une question, j'ai bien l'impression de vous faire chier ...
Les questions que vous posez sont très souvent le résultat d'un manque de recherche (personnelle ou sur le forum), donc je pense que si vous faisiez quelques efforts, vous auriez vos réponses.

En ce qui me concerne, la première fois ou j'ai cherché à lire l'état d'une CheckBox, j'ai mis un certain temps à trouver la réponse. Mais après de longues recherches, j'ai trouvé sans avoir pour autant posé la question sur un forum (et maintenant je m'en rappel).

Pour votre problème, je n'arrive vraiment pas à comprendre votre logique ...
Si vous avez une configuration de l'état de vos CheckBox dans un fichier .ini, alors faites en la lecture, puis appliquez l'état de chaque éléments à votre GUI. Lorsque vous quittez votre script enregistrez l'état des CheckBox dans le fichier .ini comme cela à la prochaine ouverture de votre script, la configuration sera la même ...
Ceci est une simple question de bon sens. :roll:

Re: [..] CheckBox

Posté : sam. 06 mars 2010 11:27
par Mikaas
Disont que je n'ai que 1H voir 2H max par jours pour etre sur le pc le reste du temps je suis occupé irl.

Sachant que je ne connais pas encore les thermes exacte mes recherches sont souvent limitée :(
pourtant j'utilise la touche F1 dans autoit j'ai aussi tapé +Checkbox dans les recherche rien ne colle :(

Pour exemple :

Si je coche la checkbox 1 sur 5 dans mon ini il me mettra
► Afficher le texte
si j'enregistre et quitte pas de souci il sera bien inscrit comme cela dans le ini
si jouvre de nouveau le script les checkbox sont vide (meme celle coché auparavant) si j'enregistre et quitte sans les coché il va m'ecraser le ini par 0 sur les 5 lignes. hors si je fais lire le ini puis cocher par defaut a l'ouverture je n'aurai pas a coché de nouveau les checkbox, juste les décocher si je désire désactiver les options.

vers quels recherches dois je m'orienter ?

Re: [..] CheckBox

Posté : sam. 06 mars 2010 11:29
par Tlem
Mikaas a écrit :si jouvre de nouveau le script les checkbox sont vide (meme celle coché auparavant)
C'est pour cela, que je vous ai conseillé de faire une fonction qui lit le fichier .ini et qui applique les valeurs lors du dernier enregistrement.

Ensuite, je vous ai dit qu'il est inutile de contrôler la valeur de la CheckBox, car si vous devez le faire :
1 - Lecture de l'état de la CheckBox.
2 - Lecture de la valeur du fichier .ini.
3 - Si CheckBox pas coché et valeur .ini = 1 alors on coche sinon on ne fait rien.

cela revient strictement à la même chose que :
1 - Lecture de la valeur du fichier .ini.
2 - Application de la valeur (quel que soit l'état précédent).

Re: [..] CheckBox

Posté : sam. 06 mars 2010 11:47
par Mikaas
Tlem a écrit :C'est pour cela, que je vous ai conseillé de faire une fonction qui lit le fichier .ini et qui applique les valeurs lors du dernier enregistrement.
Oui c'est se que j'essai de faire mais sans résultat :(

j'ai testé ceci, ca ma l'air pourtant un bon terme :(
► Afficher le texte

Re: [..] CheckBox

Posté : sam. 06 mars 2010 12:08
par Sparkdaemon
Petite parenthèse...
Tlem a écrit :Edit : Coiffé sue le poteau par sparky.


Sparky? :lol: On me l'as jamais faite ;)

Désolé du Hors-sujet ^^

Re: [..] CheckBox

Posté : sam. 06 mars 2010 12:59
par Mikaas
J'ai trouvé !!

j'ai transformé la phrase autoit en français (enfin en terme) et j'ai trouvé la solution !

merci :D

promis pour le prochaine question je cherche plus longtemps ( enfin pas 10h non plus ;) )

Edit : Par contre j'ai environs 70 checkbox ca va me faire un code long :(

ya pas plus cours que celui ci ?
► Afficher le texte

Re: [R] CheckBox

Posté : sam. 06 mars 2010 13:26
par Tlem
Cela dépend de ce que vous entendez par 10h ...
Si c'est 1 minute par heure pendant 10 heures cela ne fait que 10 minutes. :P

@Sparkdaemon
Sparky est plus court que Sparkdaemon ... :arrow: HS

Re: [R] CheckBox

Posté : sam. 06 mars 2010 13:32
par Mikaas
Là j'étais sur le problème depuis l'heure du premier post je cherchais sur le web et le forum le temps d'avoir une réponse mais vu que je ne connais pas trés bien l'appelation de certains terme j'ai un peu de mal de trouver une bonne recherche :(

PS : j'ai une petite edit sur le post du dessus au niveau de la longueur du code :oops: n'y aurai til pas un autre moyen connu ? car 70 checkbox ça rallonge le code grandement :D

Re: [R] CheckBox

Posté : sam. 06 mars 2010 13:37
par Tlem
Effectivement, 70 CheckBox, ca commence à faire.
Cette fois-ci, mon conseil sera d'utiliser une boucle pour la lecture/écriture du fichier .ini et de l'état des CheckBox.

Le mieux sera de créer vos CheckBox avec comme valeur un truc du genre :

Code : Tout sélectionner

$check1 = GUICtrlCreateCheckbox("CHECKBOX 1", 10, 10, 120, 20)
$check2 = GUICtrlCreateCheckbox("CHECKBOX 2", 10, 30, 120, 20)
$check3 = GUICtrlCreateCheckbox("CHECKBOX 3", 10, 50, 120, 20)
Ensuite une boucle de lecture/écriture de l'état des CheckBox avec l'utilisation de la commande Eval()
Idem pour la lecture/écriture dans votre fichier .ini.
Le mieux sera d'utiliser l'ID du contrôle (check1, check2, check3, ...)

Vous-vous lancez là dans quelque chose d'un petit peut complexe, donc prenez votre temps avant de poser des questions. :P
Et si vous recherchez un peux sur le forum, il me semble bien que quelque chose de similaire à été fait. :roll:

Re: [R] CheckBox

Posté : sam. 06 mars 2010 13:50
par Sparkdaemon
Tu peut aussi utiliser :

Code : Tout sélectionner

Dim $checkbox[70]
 
Et tu crées tes checkbox par rapport au numéro ;)
Sachant que la premiere checkbox sera $checkbox[0] et la derniere $Checkbox[69]