[Func] ProgressBar, aller plus loin.

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

[Func] ProgressBar, aller plus loin.

#1

Message par DJSIR »

Aujourd'hui, une ProgressBar, c'est ça :
Image
Avec AutoIt, on peux changer de ces barres de progression classiques. Il faut juste ajouter quelques lignes ;)

- "Marquee" :
Image
► Afficher le texteDémarrer
► Afficher le texteArrêter
- "Red", "Yellow", "Green" (seulement sur Windows Vista, Windows Server 2008 et Windows 7)
Image
Image
Image
► Afficher le texteCode
ATTENTION : En Jaune et Rouge, les ProgressBar ne peuvent avancer.

Pensez à vérifier l'OS avec un petit :

Code : Tout sélectionner

If @OSBuild < 6000
Exemple :
► Afficher le texteExemple
Amusez-vous bien ;)
Modifié en dernier par DJSIR le jeu. 01 juil. 2010 18:40, modifié 1 fois.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#2

Message par timmalos »

Tiens des vieilles fonctions souvenirs;)
Sympa de ta part de les avoir partager avec les autres, tu vois tu arriveras bien à partager tes sources un jour ou l'autre.
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#3

Message par DJSIR »

J'ai mal au ventre.. :D
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Sh4dows
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#4

Message par Sh4dows »

Merci DJSIR :wink:
Je ne connaissais pas du tout !
Sh4dows
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#5

Message par Sh4dows »

J'ai 2 Vista + 2 Seven + 3 Xp et sur aucun cela ne marche !

Xp c'est normal mais pas les autres. :roll:

J'ai fais ce code Rapidos :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <SendMessage.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Sh4dows", 480, 352, 219, 167)
$R = GUICtrlCreateProgress(16, 40, 449, 25)
$Label1 = GUICtrlCreateLabel("Rouge :", 16, 16, 49, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$J = GUICtrlCreateProgress(14, 107, 449, 25)
$Label2 = GUICtrlCreateLabel("Jaune :", 14, 83, 46, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$V = GUICtrlCreateProgress(16, 172, 449, 25)
$Label3 = GUICtrlCreateLabel("Vert", 16, 148, 27, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$S = GUICtrlCreateProgress(16, 255, 449, 25)
$Label4 = GUICtrlCreateLabel("Normale :", 16, 231, 58, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Start", 100, 320, 137, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Stop", 250, 320, 137, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

_Progress_Start($R)
_Progress_Start($J)
_Progress_Start($V)
_Progress_Start($S)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            _Progress_Start($R)
            _Progress_Start($J)
            _Progress_Start($V)
            _Progress_Start($S)
    EndSwitch
WEnd

Func _Progress_Start($ProgressBar)
    If $ProgressBar <> $S Then
        ;(1 = Vert, 2 = Rouge, 3 = Jaune)
        GUICtrlSetStyle($ProgressBar,0x040A)
        _SendMessage(GUICtrlGetHandle($ProgressBar), 0x040A, True, 50)
        If $ProgressBar = $R Then
            ;== Rouge ==
            _SendMessage(GUICtrlGetHandle($ProgressBar),0x400 + 16, 2,0)
        ElseIf $ProgressBar = $J Then
            ;== Jaune ==
            _SendMessage(GUICtrlGetHandle($ProgressBar),0x400 + 16, 3,0)
        ElseIf $ProgressBar = $V Then
            ;== Vert ==
            _SendMessage(GUICtrlGetHandle($ProgressBar),0x400 + 16, 1,0)
        EndIf
    Else
        For $i = 1 To 100
            $Msg = GUIGetMsg()
            If $Msg = $Button2 Then
                _Progress_Stop($R)
                _Progress_Stop($J)
                _Progress_Stop($V)
                GUICtrlSetData($ProgressBar, 0)
                ExitLoop
            EndIf
            GUICtrlSetData($ProgressBar, $i)
            Sleep(33)
        Next
    EndIf
EndFunc

Func _Progress_Stop($Progress)
        GUICtrlSetStyle($Progress,0)
        If $Progress = $R Then
            ;== Rouge ==
            _SendMessage(GUICtrlGetHandle($Progress), 0x040A, False, 0)
        ElseIf $Progress = $J Then
            ;== Jaune ==
            _SendMessage(GUICtrlGetHandle($Progress), 0x040A, False, 0)
        ElseIf $Progress = $V Then
            ;== Vert ==
            _SendMessage(GUICtrlGetHandle($Progress), 0x040A, False, 0)
        EndIf
EndFunc
 
Les Progress Rouge et Jaune s'actualisent une fois mais rien d'autre ne se passe !!
Une suggestion ?
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#6

Message par DJSIR »

Ce code fonctionne parfaitement sur mon 7 :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>

GUICreate("GUI", 268, 107, 387, 31)
$Progress1 = GUICtrlCreateProgress(8, 8, 254, 17)
$Progress2 = GUICtrlCreateProgress(8, 32, 254, 17)
$Progress3 = GUICtrlCreateProgress(8, 56, 254, 17)
$Progress4 = GUICtrlCreateProgress(8, 80, 254, 17)

GUICtrlSetData($Progress1, 50)
_SendMessage(GUICtrlGetHandle($Progress1),0x400 + 16,1,0)

GUICtrlSetData($Progress2, 50)
_SendMessage(GUICtrlGetHandle($Progress2),0x400 + 16,2,0)

GUICtrlSetData($Progress3, 50)
_SendMessage(GUICtrlGetHandle($Progress3),0x400 + 16,3,0)

GUICtrlSetStyle($Progress4,0x040A)
_SendMessage(GUICtrlGetHandle($Progress4), 0x040A, True, 50)

GUISetState(@SW_SHOW)

While 1
 Sleep(1000)
 WEnd
 
Pour le Jaune et Rouge j'ai précisé dans le premier article qu'on ne pouvait les faire progresser.
J'ai par ailleurs rajouté l'exemple ci-dessus.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Sh4dows
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#7

Message par Sh4dows »

Ben oui maintenant sa fonctionne, il fallait le savoir qu'elles ne pouvaient pas progressé :lol:
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#8

Message par DJSIR »

C'était marqué :P
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Sh4dows
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#9

Message par Sh4dows »

Oui mais ce n'était pas marqué :P :P
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11772
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#10

Message par Tlem »

Une ProgressBar qui ne progresse pas, ça sert à quoi ?
:lol: :lol: :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#11

Message par DJSIR »

C'est, comme on pourrrais dire, un "State".
une erreur, ou un warning stoppe la progressbar, aucune raison de continuer.
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
pop45
Membre émérite
Membre émérite
Messages : 251
Enregistré le : dim. 30 août 2009 16:18
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#12

Message par pop45 »

He bien si sa progresse pas suffit te la faire repasser en vert lui donner la position que l'on souhaite puis la remettre de la couleur souhaiter!
Cordialement Pop45
Veuillez agrée nos sentiment les plus distinguer, soyez assurer de mon entièr et amical collaboration, bien a vous pour toujours et a jamais dans l'unique but de servir l'espérance de votre satisfaction.
Sh4dows
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#13

Message par Sh4dows »

J'ai essayé sa marche pas pop45 !
C'est le truc qui sert vraiment à rien :lol:
Avatar du membre
GELDROC
Niveau 6
Niveau 6
Messages : 295
Enregistré le : sam. 10 oct. 2009 10:15
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#14

Message par GELDROC »

ce que @DJSIR voulais surement vous dire est que

on crée au départ une Bar en Vert puis ci ils y a une erreur ou autre EX:(un téléchargement) on la mes en rouge puis on arrête le téléchargement.


Donc conclusion cela ne sert pas a rien !
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [Func] ProgressBar, aller plus loin.

#15

Message par DJSIR »

GELDROC a écrit :ce que @DJSIR voulais surement vous dire est que
on crée au départ une Bar en Vert puis ci ils y a une erreur ou autre EX:(un téléchargement) on la mes en rouge puis on arrête le téléchargement.
:D
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Répondre