[R] CheckBox

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

[R] CheckBox

#1

Message 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 ;)
Modifié en dernier par Mikaas le sam. 06 mars 2010 13:00, modifié 1 fois.
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [..] CheckBox

#2

Message par Sparkdaemon »

Code : Tout sélectionner

If $TON_INI = 1 then Guictrlsetdata($CheckBox1, $GUI_CHECKED)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] CheckBox

#3

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [..] CheckBox

#4

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] CheckBox

#5

Message 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 ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [..] CheckBox

#6

Message 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é ...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] CheckBox

#7

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [..] CheckBox

#8

Message 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 ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] CheckBox

#9

Message 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).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [..] CheckBox

#10

Message 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
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [..] CheckBox

#11

Message 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 ^^
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [..] CheckBox

#12

Message 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
Modifié en dernier par Mikaas le sam. 06 mars 2010 13:26, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] CheckBox

#13

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Mikaas
Niveau 5
Niveau 5
Messages : 144
Enregistré le : ven. 18 sept. 2009 04:21
Status : Hors ligne

Re: [R] CheckBox

#14

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11796
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] CheckBox

#15

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

Re: [R] CheckBox

#16

Message 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]
Répondre