Dans le code ci-dessous, je n'arrive pas à comprendre pourquoi $toto et $msg ne prennent pas la même valeur si je clique sur l'option "toto" du menu.
[R] Problème de débutant / menu contextuel
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Problème de débutant / menu contextuel
Bonsoir à tous,
Dans le code ci-dessous, je n'arrive pas à comprendre pourquoi $toto et $msg ne prennent pas la même valeur si je clique sur l'option "toto" du menu.
Merci par avance d'avoir bien voulu me lire.
Dans le code ci-dessous, je n'arrive pas à comprendre pourquoi $toto et $msg ne prennent pas la même valeur si je clique sur l'option "toto" du menu.
► Afficher le texte
Eppur si muove (Galileo Galilei)
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
Tout simplement parce que la variable $msg, récupère la valeur de la fonction GUIGetMsg() qui elle ne peut récupérer que l'ID du contrôle qui à été cliqué.
Avec cet ID, vous pouvez tout simplement lire ça valeur, et là vous aurez son texte.
Avec cet ID, vous pouvez tout simplement lire ça valeur, et là vous aurez son texte.

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é".
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é".
- Iste
- Niveau 11
- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
Je ne suis pas sûr qu'il veuille recuperer le texte de $toto
Si c'est bien ce que je pense, le probleme vien du fait qu'il ne faut pas mettre de sleep()
La, ta boucle ne verifi pas si tu clic sur $toto, mais si tu clic sur $toto exactement au moment ou le message s'affiche. Enfin, un peu compliqué a expliquer.
De plus, le sleep() n'est vraiment pas utile
Si c'est bien ce que je pense, le probleme vien du fait qu'il ne faut pas mettre de sleep()
La, ta boucle ne verifi pas si tu clic sur $toto, mais si tu clic sur $toto exactement au moment ou le message s'affiche. Enfin, un peu compliqué a expliquer.
De plus, le sleep() n'est vraiment pas utile
un bon code alors (si j'ai bien compris ce que tu cherche a faire) serait :Remarks
This function automatically idles the CPU when required so that it can be safely used in tight loops without hogging all the CPU.
Code : Tout sélectionner
#include <GUIConstants.au3>
GUICreate("Ma fenetre", 300, 200)
$menu = GUICtrlCreateContextMenu ()
$toto = GUICtrlCreateMenuitem ("Toto", $menu)
GUISetState ()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
Exit
Case $toto
msgbox(0,$msg,$toto)
EndSwitch
WEnd
Signez ici
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
Effectivement, l'explication est bien plus claire. 
M'apprendra à faire 10 trucs en même temps. hihihi

M'apprendra à faire 10 trucs en même temps. hihihi
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é".
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é".
Re: [..] Problême de débutant / menu contextuel
Merci à Iste c'est effectivement ce que je voulais faire.
L'inconvénient, c'est qu'en supprimant le sleep(n) le contenu de ma fenêtre clignote comme un arbre de Noël.
Bonne journée à tous.
L'inconvénient, c'est qu'en supprimant le sleep(n) le contenu de ma fenêtre clignote comme un arbre de Noël.
Bonne journée à tous.
Eppur si muove (Galileo Galilei)
- Iste
- Niveau 11
- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
ben, tu ne dois pas creer de bouton/autre dans la boucle.
Tu les cree avant, et dans la boucle tu met une condition pour si tu dois les actualiser, et ne pas les recreer mais utiliser un symple guictrlsetdata() ou guictrlsetstat()
De plus, si tu cree un truc deux foi, oubli pas de le supprimer avant, sinon tu vas vite avoir des centaines de boutons les un sur les autre.
Je suis pas du genre a dire "tu fais pas comme il faut" sans avoir le script complet, mais là ca qui est sur, c'est que tu utilise pas la fonction GUIGetMsg() comme il faut ^^
Pour rappel, un "bon" script simple se presente comme cela
Apres, si pour une raison ou une autre tu pense etre obligé de faire comme ca, demande sur le forum comment ammeliorer ton script, je suis sûr qu'on pourra t'aider
(peut etre passer au mod evenementiel ?)
Tu les cree avant, et dans la boucle tu met une condition pour si tu dois les actualiser, et ne pas les recreer mais utiliser un symple guictrlsetdata() ou guictrlsetstat()
De plus, si tu cree un truc deux foi, oubli pas de le supprimer avant, sinon tu vas vite avoir des centaines de boutons les un sur les autre.
Je suis pas du genre a dire "tu fais pas comme il faut" sans avoir le script complet, mais là ca qui est sur, c'est que tu utilise pas la fonction GUIGetMsg() comme il faut ^^
Pour rappel, un "bon" script simple se presente comme cela
Code : Tout sélectionner
Creation de la GUI
Boucle infini
Conditions qui testent les boutons
Conditions autres (maj de la GUI, ou autre qui ne se passe pas par un clic gauche)
Fin boucle

Signez ici
Re: [..] Problême de débutant / menu contextuel
Voila la partie du code concernée dans laquelle est recherchée en permanence la qté de mémoire disponible:
► Afficher le texte
Eppur si muove (Galileo Galilei)
- Iste
- Niveau 11
- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
hum.. je vois
donc tu dois en permanence actualiser la fenetre
En effet, c'est pas simple ^^
Donc, ce qui est sur, c'est que tu ne peux pas utiliser la meme boucle pour les boutons, et pour l'actualisation des donées
Tu peux donc soit reserver la boucle principal pour l'actualisation et mettre les boutons en func grace a l'option GUIOnEventMode
Ou alors, je sais qu'il y a un moyen pour appeler une fonction periodiquement.
Mais si je sais que c'est possible, je ne sais plus comment faire ^^' Je vais essayer de retrouver... mais la j'espere que quelqu'un d'autre repondra a ma place
donc tu dois en permanence actualiser la fenetre
En effet, c'est pas simple ^^
Donc, ce qui est sur, c'est que tu ne peux pas utiliser la meme boucle pour les boutons, et pour l'actualisation des donées
Tu peux donc soit reserver la boucle principal pour l'actualisation et mettre les boutons en func grace a l'option GUIOnEventMode
Ou alors, je sais qu'il y a un moyen pour appeler une fonction periodiquement.
Mais si je sais que c'est possible, je ne sais plus comment faire ^^' Je vais essayer de retrouver... mais la j'espere que quelqu'un d'autre repondra a ma place
Signez ici
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Problême de débutant / menu contextuel
Pour rafraîchir la partie ProgressBar, je conseillerais l'utilisation de la fonction AdlibEnable.
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é".
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é".
Re: [R] Problème de débutant / menu contextuel
Merci beaucoup Tlem impeccable.
Franchement je n'aurais pas deviné surtout que "Ad lib Enable" ce n'est pas très parlant.
Bonne soirée à tous.
Franchement je n'aurais pas deviné surtout que "Ad lib Enable" ce n'est pas très parlant.
Bonne soirée à tous.
Eppur si muove (Galileo Galilei)