Page 1 sur 1

[Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 12:14
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 ;)

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 12:18
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.

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 12:22
par DJSIR
J'ai mal au ventre.. :D

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 14:12
par Sh4dows
Merci DJSIR :wink:
Je ne connaissais pas du tout !

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 17:45
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 ?

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 18:42
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.

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 18:56
par Sh4dows
Ben oui maintenant sa fonctionne, il fallait le savoir qu'elles ne pouvaient pas progressé :lol:

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 18:57
par DJSIR
C'était marqué :P

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 19:05
par Sh4dows
Oui mais ce n'était pas marqué :P :P

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 22:32
par Tlem
Une ProgressBar qui ne progresse pas, ça sert à quoi ?
:lol: :lol: :lol:

Re: [Func] ProgressBar, aller plus loin.

Posté : jeu. 01 juil. 2010 22:48
par DJSIR
C'est, comme on pourrrais dire, un "State".
une erreur, ou un warning stoppe la progressbar, aucune raison de continuer.

Re: [Func] ProgressBar, aller plus loin.

Posté : ven. 02 juil. 2010 08:22
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!

Re: [Func] ProgressBar, aller plus loin.

Posté : mar. 06 juil. 2010 21:44
par Sh4dows
J'ai essayé sa marche pas pop45 !
C'est le truc qui sert vraiment à rien :lol:

Re: [Func] ProgressBar, aller plus loin.

Posté : mar. 03 août 2010 10:35
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 !

Re: [Func] ProgressBar, aller plus loin.

Posté : mar. 03 août 2010 13:45
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