Page 1 sur 2

[R] Fermeture GUI ne fonctionne pas en cours de programme

Posté : mar. 20 sept. 2011 15:33
par pierrotm777
Bonjour,
Je me sent un peu idiot sur le coup car comme dirait Tlem, depuis le temps je devrais ne plus avoir ce genre de souci.
Et pourtant, dans le script suivant:
► Afficher le texte
Après appuie sur le bouton "Send Command", je suis obligé d'attendre que la boucle for..next soit finie pour avoir accès à nouveau au bouton exit ou la croix de fermeture de la GUI .

Merci de votre aide par avance !

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 15:40
par PandiPanda
normal,le for .. next et le sleep() sont bloquant !

changer le sleep(2000) par la fonction ci dessous;
► Afficher le texte
Donc comme ceci;
► Afficher le texte

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:07
par pierrotm777
Cela ne fonctionne pas chez moi ! :|

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:18
par PandiPanda
étrange m'enfin le problème réside dans votre sleep(2000) ainsi que votre boucle for... next
ceci ?
► Afficher le texte
Edit: supprimer les lignes superflue ...

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:19
par pierrotm777
Là, ma boucle ne démarre pas !

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:36
par pierrotm777
Ah, là ça fonctionne ! :D
J'ai du modifier le $sleep = 2000 par $sleep = 1000 car la boucle dépassait les 2 secondes.
Y aurait il une autre solution que ma boucle for..next , car cela me semble très lourd !

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:39
par pierrotm777
Pour le bouton Exit , j'ai tenté d'ajouter:

Code : Tout sélectionner

If GUIGetMsg()=$Button7 Then Exit
mais sans succès !

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:48
par ZDS
Bonjour,

Je confirme, le sleep enm***e le monde. Il bouffe certains événements du GUIGetMsg et en laisse passer d'autres (comme le -8 et -11).
► Afficher le texteScript avec décrochage de boucle For
Autre solution en utilisant un timer:
► Afficher le texteScript avec utilisation d'un timer
A bientôt!

PS: Panda, ça serait vraiment bien que tu testes ton script avant de le fournir ^^ Ton timer ne sert pas à grand chose dans ta boucle. Et faire des sleep(10) à la chaine consomme plus de temps à se lancer et faire le reste du code qu'à s'exécuter en l'état. 200 sleep(10) ne prennent pas le même temps que sleep(2000).

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 16:50
par PandiPanda
désoler oubliez de l'enlever ^^
c'etais de mon script écrit avant ... j'enleve desuite.

Re: [..] Fermeture GUI ne fonctionne pas en cours de program

Posté : mar. 20 sept. 2011 17:12
par pierrotm777
Merci beaucoup ZDS,
C'est impeccable !

Merci aussi à PandiPanda qui vient de se faire enguirlander par ma faute !!!

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mar. 20 sept. 2011 17:55
par Baku
Et pourquoi ne pas simplement utiliser GUICtrlSetOnEvent ?

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mar. 20 sept. 2011 18:00
par pierrotm777
J'avais essayé mais avec le même problème dans mes boucles for..next.

Juste une autre question !
Si je veux avec le même bouton stop le décomptage sans quitter mais GUI, j'ai testé cela:
► Afficher le texte

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mar. 20 sept. 2011 22:12
par mikell
Dans ce cas-là ça serait plutôt comme ça (credits to ZDS :mrgreen: )
► Afficher le texte

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 09:41
par ZDS
Bonjour,

La solution de Mikell fonctionne très bien, mais ayant une préférence pour l'évolution la plus simple possible d'un code existant, voici une autre (algorithmiquement, ça change pas grand chose, mais ça fonctionne pareil, ça n'utilise pas de booléen supplémentaire en fait) :
► Afficher le texteScript avec interruption de la boucle
A bientôt !

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 11:26
par pierrotm777
C'est super ZDS,
Mais en fait j'aurais besoin de six fonctions identiques, j'ai donc modifié ton script ainsi mais :oops:
► Afficher le texte

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 11:42
par ZDS
6 fonctions identiques, utilise plutôt un tableau.
Je te prépare ça après bouffer.

Bon appétit !

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 11:54
par pierrotm777
Bon appétit :D

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 14:35
par ZDS
Re,
► Afficher le texteComment ne pas répéter 6 fois les mêmes lignes de code
Par contre, quand tu rentres dans la boucle d'attente quand la value d'un indicator bouge de 0 à 65535, tu ne peux pas cliquer sur les boutons d'un slider, et inversement. Pour faire fonctionner le tout parallèlement, c'est beaucoup plus de code qu'il faudra pondre ^^

A bientôt!

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : mer. 21 sept. 2011 15:01
par pierrotm777
Merci beaucoup ZDS.
Cela me convient tout à fait ! :D

Re: [R] Fermeture GUI ne fonctionne pas en cours de programm

Posté : jeu. 22 sept. 2011 16:14
par pierrotm777
J'ai ajouté la possibilité de choisir entre 3 variations possible (0->65535) ou (65535->0) ou (0->65535 puis 65535-> 0 en boucle).
Les deux premières options fonctionnent, mais pour la troisième j'ai bien la mise en boucle pas pas d'arrêt possible ! :mrgreen: