Je cherchais un script qui me permettrait d'avoir une progress bar qui soit facile à paramétrer et qui puisse changer de couleur suivant la valeur du curseur.
Je l'ai modifié en sortant les paramètres de position et de taille pour simplifier son utilisation et en permettant de changer la couleur de la barre en fonction de la valeur du curseur :
- de 0 à 50 % => Vert
- de 51 à 75 % => Orange
- de 75 à 100 % => Rouge
#include <GUIConstantsEx.au3>
; Script : Exemple de barre de progression qui change de couleur en fonction du % du curseur
; Script original : http://www.autoitscript.com/forum/topic/88243-progressbar-color/page__view__findpost__p__634438 (auteur : RomanK)
; Réécrit et complété par scorp84 (modification simplifiée de la taille et de la position de la barre de progression
; et ajout du changement de couleur suivant la position du curseur)
; 28/12/11
GUICreate("Progress bar colorée selon %", 350, 50) ; GUI
$prog_left=10 ; Position en x de la barre de progression
$prog_top=10 ; Position en y de la barre de progression
$prog_width=300 ; Longueur de la barre de progression
$prog_height=15 ; Largeur de la barre de progression (recommandé : 15 pour une barre équivalente à une progressbar
$prog_curseur = 0 ; Raz valeur curseur
$prog_frame = GUICtrlCreateLabel("", $prog_left, $prog_top, $prog_width, $prog_height+2, 0x12) ; Cadre de la barre de progression
$progress = GUICtrlCreateLabel("", $prog_left+1, $prog_top+1, 0, $prog_height); Barre de progression / $prog_left+1 et $prog_top+1 pour voir le cadre autour
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Fond transparent pour la barre de progression
$label_pourc = GUICtrlCreateLabel("", $prog_left, $prog_top+($prog_height/2)-5, $prog_width, 20, 0x01); $prog_top+($prog_height/2)-5 pour mettre les % au milieu
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT); Fond du label % transparent
GUISetState() ; Affichage de la GUI
While 1
$prog_curseur=$prog_curseur+1 ; Augmente la valeur du curseur de 1
GUICtrlSetPos($progress, $prog_left+1, $prog_top+1, $prog_curseur) ; Augmente la position du curseur
GUICtrlSetData($label_pourc, " " & Round($prog_curseur / $prog_width * 100, 0) & "%" ) ; Indique le %
Switch $prog_curseur
Case 1 ; Barre de progression verte de 0 à 50 %
GUICtrlSetBkColor($progress, 0x00FF00) ; Vert
Case ($prog_width/2)+1 ; Barre de progression orange de 50 à 75 %
GUICtrlSetBkColor($progress, 0xFF9900) ; Orange
Case ($prog_width*3/4)+1 ; Barre de progression rouge de 75 à 100 %
GUICtrlSetBkColor($progress, 0xFF0000) ; Rouge
Case $prog_width ; Sortie de la boucle à 100 %
Sleep(1000) ; Pause avant sortie de la boucle (Facultatif)
ExitLoop ; Sortie de la boucle
EndSwitch
Sleep(100) ; Pause
WEnd
Exit
En espérant que cela puisse servir à d'autres.
Si vous avez des idées pour l'améliorer, n'hésitez pas
Moi personnellement, j'aurai inverser le sens des couleurs, à savoir rouge, puis orange, puis vert.
mais chacun son choix ^^
Sinon moi je trouve le changement de couleur trop brusque. Ca serai idéal si ca "montait" dans le rouge pour arriver a l'orange, puis idem ca monte dans l'orange puis arriver au vert
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Bonne idée pour le changement progressif de la couleur
Pour l'ordre des couleur je suis parti comme cela car c'est pour un chronomètre pour la conduite de réunion et plus la fin du temps imparti approche, plus il est temps de conclure.