Page 1 sur 1

[R] Menu: Bug ou erreur de coding ?

Posté : mer. 11 déc. 2013 23:17
par megaten
Bonsoir,
Me revoilà avec mon problème de menu. J'ai dépouillé le code pour mettre en relief l'erreur.
L'exemple qui suit fonctionne.
Si j'ajoute une MsgBox dans le traitement ( en le décommentant dans mon script ) je n'arrive plus à détecter les
messages du menu.
Donc en conclusion un bug ou une erreur de coding.?
Merci de vos lumières! :?:
► Afficher le texte

Re: [..] Menu: Bug ou erreur de coding ?

Posté : jeu. 12 déc. 2013 09:14
par TT22
C'est normal, la fonction MsgBox est une fonction bloquante. Autrement dit, elle arrête le script tant qu'elle n'est pas fermée. Ce qui fait que ta boucle ne se répète plus.
Ce que je te conseille, c'est d'utiliser des fonctions non bloquantes comme ConsoleWrite si tu fait du débogage ou SplashText* si tu souhaites diffuser le script.

Exemple avec ConsoleWrite :
► Afficher le texte
Exemple avec SplashText :
► Afficher le texte

Re: [..] Menu: Bug ou erreur de coding ?

Posté : jeu. 12 déc. 2013 10:40
par megaten
Merci pour cette explication et tes exemples.
Mais j'ai tout de même un gout d'inachevé!!

Je te cite:
> elle arrête le script tant qu'elle n'est pas fermée.
Donc elle devrait où ne devrait pas reprendre après la réponse où l'écoulement du délai imparti, selon la conception du langage de script? Où ?? On doit sortir du While/Wend mais on boucle où on wait ailleurs?

>Ce qui fait que ta boucle ne se répète plus.
Là je ne comprend plus la logique du produit, car si l'on sort de la boucle on doit bien atterrir quelque part?

Par ailleurs selon les tests on passe dans des Select/Endselect qui affiche des MsgBox, qui elles ne provoquent pas le même effet.

Bon je te l'accorde je pinaille, mais j'aimerais bien saisir le fonctionnement de ce code.
Aurais-tu un pointeur vers une doc traitant ce type de détail?

Merci beaucoup de ton aide, je pars en recherche. :)
Meg

Re: [..] Menu: Bug ou erreur de coding ?

Posté : jeu. 12 déc. 2013 14:53
par mikell
La msgbox s'exécute en permanence dans la boucle While, pour que le clic sur le trayitem fonctionne faudrait le faire pendant le millionième de seconde entre la fermeture de la msgbox et le début du sleep(100) ^^
Mais si tu veux que le message de ce clic soit enregistré pour être exécuté à la fermeture de la msgbox, faut passer en mode évènementiel
► Afficher le texte

Re: [R] Menu: Bug ou erreur de coding ?

Posté : jeu. 12 déc. 2013 15:58
par megaten
oK Merci. :D

J'ai parcouru pas mal de dox et de rapport d'expérience, et je suis arrivé à ta conclusion.

Je vais faire avec;

Meg