Sujet du message: [R] Sleep qui empeche fermeture Gui
Posté: Mar 27 Juil 2010 20:33
Comme mon ancient message supprimé ..
Avec un Sleep(1000) mon gui est innaccessible (Les bouttons sont gelés)
Vous m'avez dit un Sleep(50) arrange le problème, mais il gêne toujours le CPU et les clics se font avec un petit 'lag' quand même gênant.
Possible d'arranger cela ?
Dernière édition par networe le Jeu 29 Juil 2010 12:35, édité 1 fois.
AutoIt Français
sylvanie
Modérateur
Inscription: Jeu 26 Juil 2007 20:31 Messages: 802 Age: 33
Localisation: Paris
Sujet du message: Re: [..]Sleep qui empeche fermeture Gui
Posté: Mar 27 Juil 2010 20:38
il faut peut être alors passer en mode evenmentiel avec Opt("GUIOnEventMode", 1) et assigner une fonction par contrôle (voir fichier d'aide sur GUIOnEventMode)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
AutoIt Français
networe
Niveau 4
Inscription: Lun 30 Nov 2009 02:36 Messages: 54
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Mar 27 Juil 2010 20:54
Je comprend vraiment pas cette fonction
AutoIt Français
networe
Niveau 4
Inscription: Lun 30 Nov 2009 02:36 Messages: 54
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Mar 27 Juil 2010 21:16
J'essais AdlibEnable
J'ai mon script ..
Code
While 1 ... Caliss() ; Jappel la fonction Caliss Wend
Et ça marche bien mais :
Code
While 1 ... AdlibEnable("Caliss",110) Wend
Impossible de le faire marcher, Comment ca ??
Dernière édition par networe le Mer 28 Juil 2010 12:55, édité 1 fois.
AutoIt Français
sylvanie
Modérateur
Inscription: Jeu 26 Juil 2007 20:31 Messages: 802 Age: 33
Localisation: Paris
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Mar 27 Juil 2010 21:27
[edit par croisement de posts] AdlibEnable ne doit pas être prise dans un while, puisque son but est de lancer cycliquement une fonction sans avoir à passer par une boucle [ fin edit]
ok, pour le mode evenementiel , voici un copier coller du code d fichier d'aide pour analyse :
Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You pressed OK!") EndFunc
Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...") Exit EndFunc
la philosophie est de remplacer le gros while 1 ... wend contenant l'ensemble des tests : si controle pressé est bouton1 alors faire ça, si bouton 2 faire ça, etc . par un
Code
while 1 sleep(1000) wend
mais en contre partie, il faut enregistrer des callback (fonction) à chaque controle de la fenêtre pour que le script sache quoi exécuter lors de l'appui dessus
pour enregistrer ces fonction nous avons 2 "enregistreurs" : GUISetOnEvent pour les boutons (maintenant on va plutôt parler d'évènement) de la fenêtre principal (croix de fermetre, agrnadissement, réduction ....) et GUICtrlSetOnEvent qui va gérer les contrôle de notre programme à proprement parlé (nos boutons, combobox, listview, etc)
ainsi dans l'exple de l'aide : GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") indique qu'à la croix ($GUI_EVENT_CLOSE , là faut lire l'aide pour les correspondence) on associe la fonction CLOSEClicked écrite plus bas dans le code
de même après on a : GUICtrlSetOnEvent($okbutton, "OKButton") qui associe au bouton créé une ligne plus haut "$okbutton" la fonction OKBOUTON écrite de même dans le code.
donc dans votre code, il faudrait associer à chacun de vos contrôle, la fonction lancée lorsque vous cliquez dessus
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
AutoIt Français
networe
Niveau 4
Inscription: Lun 30 Nov 2009 02:36 Messages: 54
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Mer 28 Juil 2010 12:56
Je suis comme ça :')
C'est édité, et un Up pour ma question ?
AutoIt Français
sylvanie
Modérateur
Inscription: Jeu 26 Juil 2007 20:31 Messages: 802 Age: 33
Localisation: Paris
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Mer 28 Juil 2010 19:51
là je pressent 2 problèmes de fonts qui ici ont fâcheusement tendence à se confondre : - la gestion de la fenêtre d'après le 1er message, qui peut être améliorée (légèrement) par le passage en mode évènementiel -une fonction appelée cycliquement via un adlibenable (qui est toujours inclus dans le while 1 au passage, puisque vous avez juste délocalisé l'appel via une fonction qui est dans la boucle ...)
pour éliminer les pistes de lag, vous allez : - tester la réactivité en supprimant l'appel à la fonction lancée par le adlibenable. Si les troubles persistent alors il faut se lancer dans le mode évènementiel corps et ame. -Sinon : il s'agit de la fonction lancée cycliquement. A ce moment, il faudra chercher à l'optimiser (essayer d'éviter les imbrications de boucles par exple) et au cas échéant compiler ce code à part pour le lancer via la commande "run" depuis votre script principal
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
AutoIt Français
networe
Niveau 4
Inscription: Lun 30 Nov 2009 02:36 Messages: 54
Sujet du message: Re: [..] Sleep qui empeche fermeture Gui
Posté: Jeu 29 Juil 2010 12:34
Voila le problème est résolu avec adlibenable
AutoIt Français
sylvanie
Modérateur
Inscription: Jeu 26 Juil 2007 20:31 Messages: 802 Age: 33
Utilisateurs parcourant ce forum: darkex, Exabot [Bot], Google [Bot] et 4 invités
Vous ne pouvez pas poster de nouveaux sujets Vous ne pouvez pas répondre aux sujets Vous ne pouvez pas éditer vos messages Vous ne pouvez pas supprimer vos messages Vous ne pouvez pas joindre des fichiers