Page 1 sur 1

[..]Checkbox et tableau

Posté : lun. 12 oct. 2009 23:14
par Karl
Bonsoir,

Merci d'avance pour vos interventions.

Pourquoi la fenêtre ne se ferme pas quand je clique sur les boutons Annuler, Valider ainsi que sur la croix qui est censée la fermer?

Est-il possible de placer dans un tableau à deux dimensions de mélanger des infos numériques et des chaines?

J'aimerais réaliser un sondage.
► Afficher le texte

Re: [..]Checkbox et tableau

Posté : lun. 12 oct. 2009 23:43
par Tlem
Merci de ne pas utiliser la coloration syntaxique en dehors des forums qui y sont autorisés (voir règles de présentation à la fin).

Votre code à plusieurs défauts majeurs.
En premier lieu, vous utilisez des 'Case' sur des variables et vous ré-utilisez ces même variables pour le 'Until'. Cela ne peut être compatible car selon l'endroit ou vous vous trouvez dans la boucle lors du clic sur tel ou tel bouton, le 'Case' correspondant sera peut être exécuté ou non.

Si vous devez sortir de la boucle et donc du script c'est après les instructions des 'Case' qu'il faut rajouter la commande qui va bien tel qu'une sortie de boucle par exemple. ;)

Ensuite, vous pouvez effectivement mélanger à volonté chaîne ou numérique.

Par contre dans votre script, je ne vois pas du tout l'intérêt de créer un tableau à deux dimensions et d'y stocker le contrôle ID de votre contrôle checkbox ainsi qu'un nom que vous lui attribué. :shock:
Si c'est pour tester l'état du contrôle, utilisez l'UDF _IsChecked(). Un sujet récent à été abordé sur le même thème. Faites quelques recherches.

Re: [..]Checkbox et tableau

Posté : mar. 13 oct. 2009 00:10
par Karl
J'ai réduit le script à sa plus simple expression pour essayer d'isoler le problème.

J'ai donc inclut Exitloop à chaque case.

Mais rien n'y fait, je ne quitte toujours pas la fenêtre.
Mais que se passe-t-il?

Re: [..]Checkbox et tableau

Posté : mar. 13 oct. 2009 01:50
par orax
C'est le Opt("GUIOnEventMode",1) qui est de trop. Cette option s'utilise avec GUISetOnEvent().
Il faudra ajouter dans le Select :

Code : Tout sélectionner

Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
Il y a aussi la variable $arr qui n'est pas déclarée.


Et la coloration syntaxique n'est pas réservée pour ce forum. :mrgreen:
Tlem a écrit :Merci de ne pas utiliser la coloration syntaxique en dehors des forums qui y sont autorisés (voir règles de présentation à la fin).

Re: [..]Checkbox et tableau

Posté : mar. 13 oct. 2009 06:43
par Tlem
Rhoooo, j'avais même pas vu le Opt("GUIOnEventMode",1). :oops:

@Karl
Comme je vous l'ai dit et comme l'à souligné orax, l'utilisation des balises autoit et donc la coloration syntaxique est réservée à d'autres forum. Donc merci de ne pas l'utiliser en dehors de ceux-ci.

Et puis vous n'allez quand même pas reprendre votre code à chaque message !!!

Re: [..]Checkbox et tableau

Posté : mar. 13 oct. 2009 13:27
par Karl
Bonjour,

Merci Orax et Tlem pour vos remarques.

Ok pour le Opt("GUIOnEventMode",1) que j'ai viré.
Ok pour la déclaration du tableau.
Ok pour l'utilisation double des variables.
Ok pour la fonction _IsChecked que j'ai inclue dans le script.
Ma fenêtre se ferme enfin.

Je passe à la deuxième partie de mon problème qui est la gestion des cases cochées.

J'aimerai que pour chaque case cochée, un programme se lance.

Dans le script cela donne :

case $msg=$valider
$i=0
while 1
If _IsChecked($arr[$i][0]) then
$cmd=ShellExecute($arr[$i][2])
Endif

$i+=1
If $i==3 then
exitloop
wend

ou les positions $arr[x][2] contiennent le nom des programmes à lancer.

Ca marche pour notepad.exe, wordpad.exe et cmd.exe.

1° Est ce que ce principe de gestion des prog à lancer est correcte?
2° Est-ce que je peux conserver ce prinicipe pour des éxcutions de programmes qui prennent du temps? Exemple : une sauvegarde de documents.
3° Puis-je remplacer les deux instructions $i+=1 et If $i==3 par une seule If ($i+=1)==3)? A l'éxécution, j'ai un message d'erreur me signalant une parenthèse ')' manquante.
4°Il existe certainement une fonction qui permet de cocher toutes les cases en en cochant une seule. Quelles sont les pistes?

5°En ce qui concerne l'usage de la coloration synthaxique, je ne pige pas ce qu'il faut faire. Faut-il oui ou non utiliser les balises [autoit][/autoit] dans les scritps que j'inclus dans les posts? Scite ne fournit que du texte coloré. Cmt faire pour ne pas avoir à le retaper dans le forum sans la coloration? Cmt fait-on pour "Spoiler" les scripts?

Cordialement,

Re: [..]Checkbox et tableau

Posté : mar. 13 oct. 2009 20:19
par Tlem
Lorsque vous placez un code dans un de vos messages, entourez le des balises CODE disponible dans les outils de mise en forme.
Pour le spoiler c'est la même chose, donc si vous voulez mettre un code en spoiler, cliquez d'abord sur code puis sur spoiler et ensuite placez votre code au milieux des quatre balises qui auront été créées.
(N'oubliez pas de ré-éditer votre message au dessus).