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

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#1

Message 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 !
Modifié en dernier par pierrotm777 le mar. 20 sept. 2011 17:14, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message 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
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#3

Message par pierrotm777 »

Cela ne fonctionne pas chez moi ! :|
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

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

#4

Message 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 ...
Modifié en dernier par PandiPanda le mar. 20 sept. 2011 16:50, modifié 3 fois.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message par pierrotm777 »

Là, ma boucle ne démarre pas !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#6

Message 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 !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#7

Message par pierrotm777 »

Pour le bouton Exit , j'ai tenté d'ajouter:

Code : Tout sélectionner

If GUIGetMsg()=$Button7 Then Exit
mais sans succès !
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

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

#8

Message 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).
Modifié en dernier par ZDS le mar. 20 sept. 2011 16:50, modifié 1 fois.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

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

#9

Message par PandiPanda »

désoler oubliez de l'enlever ^^
c'etais de mon script écrit avant ... j'enleve desuite.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#10

Message par pierrotm777 »

Merci beaucoup ZDS,
C'est impeccable !

Merci aussi à PandiPanda qui vient de se faire enguirlander par ma faute !!!
Avatar du membre
Baku
Niveau 5
Niveau 5
Messages : 103
Enregistré le : mar. 26 oct. 2010 18:34
Status : Hors ligne

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

#11

Message par Baku »

Et pourquoi ne pas simplement utiliser GUICtrlSetOnEvent ?
[color=#0000FF]jchd[/color] a écrit :On est tous le casse-burnes de quelqu'un à un moment ou un autre !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#12

Message 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
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#13

Message par mikell »

Dans ce cas-là ça serait plutôt comme ça (credits to ZDS :mrgreen: )
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

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

#14

Message 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 !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#15

Message 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
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

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

#16

Message par ZDS »

6 fonctions identiques, utilise plutôt un tableau.
Je te prépare ça après bouffer.

Bon appétit !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#17

Message par pierrotm777 »

Bon appétit :D
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

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

#18

Message 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!
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#19

Message par pierrotm777 »

Merci beaucoup ZDS.
Cela me convient tout à fait ! :D
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#20

Message 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:
Fichiers joints
RRSliderUpdater.zip
(3.03 Kio) Téléchargé 137 fois
Modifié en dernier par pierrotm777 le jeu. 22 sept. 2011 16:35, modifié 3 fois.
Répondre