Page 1 sur 1

[..] Continuer le script avec la progress-bar

Posté : jeu. 12 juin 2014 17:48
par Kaplan
Bonjour,

Je me suis inspiré de l'un des exemples glanés sur le forum pour créer une progress-bar sans fin.
Le problème est que je ne parviens pas à trouver le moyen de faire continuer l'exécution du script pendant que la progress-bar continue de tourner. Elle boucle à l'infini sans que le traitement se poursuive.
En fin de traitement, j'ai tenté d'introduire un évênement ($mess) destiné à interrompre le processus mais encore faudrait-il que le script s'exécute.

J'ai tenté de rechercher par moi-même sur le forum mais je n'ai pas su trouver la solution adaptée. :cry:
J'apprécierais un petit coup de pouce.

Merci par avance.

PS : j'ai allégé l'extrait de code pour le rendre plus lisible ...
► Afficher le texte

Re: [..] Continuer le script avec la progress-bar

Posté : jeu. 12 juin 2014 19:16
par Sea
Met tes AdlibRegister("_SliderRight", 30) en dehors de ta boucle car en gros ici a chaque fois tu à ta boucles tu dis, Toute les 30ms à partir de maintenant tu va m'exécuter la fonction "_SliderRight".

Et après quelques conseils pour la lisibilité de ton code.
Rajoute une fonction updateProgress qui va t'update ta progression de ta barre (juste la gestion de la GUI) et rajoute une fonction d'écriture de log ;)

Re: [..] Continuer le script avec la progress-bar

Posté : jeu. 12 juin 2014 23:08
par jguinch
Tu as aussi le style $PBS_MARQUEE qui peut être sympa :
► Afficher le texte

Re: [..] Continuer le script avec la progress-bar

Posté : ven. 13 juin 2014 00:06
par Kaplan
Merci à jguinch et à Sea pour les réponses. :D
J'avais déjà essayé le style $PBS_MARQUEE mais je ne parviens pas à modifier la couleur verte de la barre de défilement. J'ai cru lire que cela était impossible. Par ailleurs, je préférais une barre aux contours nets qui fait des allers-retours.

En ce qui concerne le déplacement de AdlibRegister en dehors de la boucle cela me parait difficile dans la situation suivante :

Code : Tout sélectionner

Construction de la GUI
While 1
      While 1
      WEnd
AdlibRegister
traitement des données
Wend
Fonctions
 
En bref, je ne vois pas où le déplacer. :?
Je vais creuser la piste de l'updateprogress

A suivre ...

Re: [..] Continuer le script avec la progress-bar

Posté : jeu. 26 juin 2014 00:04
par TomAijerrie
Kaplan a écrit :...mais je ne parviens pas à modifier la couleur verte de la barre de défilement. J'ai cru lire que cela était impossible. Par ailleurs, je préférais une barre aux contours nets qui fait des allers-retours.
Extrait de Autoit Help, guictrlsetcolor() :
"Checkbox, Radio, Group or Progress controls cannot be painted if the "Windows XP/Vista style" is used."

En gros, on ne peut pas colorier la barre de progression si le style XP ou Vista est utilisé

:!: Ne pas confondre style et OS :
on peut être sur Seven (par exemple) et avoir un style antérieur
(Panneau de configuration/paramètres d'affichage/thèmes)

Pour le défilement de la barre, je te propose quelquechose comme ça :
► Afficher le texte
Il faudrait que tu fournisses un code plus complet car je n'ai toujours pas compris si ton script est plutôt ludique ou au contraire très sérieux.

J’espère t'avoir aidé.

Re: [..] Continuer le script avec la progress-bar

Posté : lun. 14 juil. 2014 20:19
par Kaplan
:) Merci pour cette belle barre de progression qui correspond mieux à mon souhait.
Mon code a été posté dans un message plus haut. Je m'en sers dans mon travail.
Je me pose la question de l'intégration de la barre de défilement dans le code étant donné que j'ai déjà essayé sans succès dans mon précédent code.
La fin du RunWait pourrait marquer le moment d'interrompre la barre de défilement mais cette dernière tourne en boucle :? sans que je parvienne à l'arrêter comme si elle bloquait l'exécution du code.

Re: [..] Continuer le script avec la progress-bar

Posté : mar. 15 juil. 2014 15:30
par TomAijerrie
En effet, comme ça elle bloque le code.

Dans ton code, on a :

Code : Tout sélectionner

Creation de la GUI
Boucle For...To...
Next
Appel d'une autre boucle For ... To ... Next
Appel de la boucle précédente et ainsi de suite jusqu'à l'appel de la fonction endscript avec la touche echap
Il faudrait plutôt déclarer une variable de progression en mode Gobal, et faire bouger la progressbar en fonction de la valeur de cette variable. Tu peux aussi ajouter une variable Globale pour indiquer le sens de deplacement de la progressbar.

Au lieu d'ajouter la fonction _mess(), met au début de ta fonction de déplacement de la progressbar

Code : Tout sélectionner

If $mess = 1 then
      GUICtrlDelete($ab)
      GUICtrlDelete($ba)
      return
EndIf