[R] Progressbar automatique

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
MiXS
Niveau 4
Niveau 4
Messages : 82
Enregistré le : mar. 13 nov. 2007 23:10
Status : Hors ligne

[R] Progressbar automatique

#1

Message par MiXS »

Voilà je voudrais voir le rendu d'une progressBar automatique (sans appuyer sur start)
Je voudrais qu'elle demarre automatiquement et ce en boucle

Code : Tout sélectionner

#include <GUIConstants.au3>

GUICreate("My GUI Progressbar",220,100, 100,200)
$progressbar1 = GUICtrlCreateProgress (10,10,200,20)
GUICtrlSetColor(-1,32250); not working with Windows XP Style
$progressbar2 = GUICtrlCreateProgress (10,40,200,20,$PBS_SMOOTH)
$button = GUICtrlCreateButton ("Start",75,70,70,20)
GUISetState ()

$wait = 20; wait 20ms for next progressstep
$s = 0; progressbar-saveposition
do
$msg = GUIGetMsg()
If $msg = $button Then
    GUICtrlSetData ($button,"Stop")
    For $i = $s To 100
    If GUICtrlRead($progressbar1) = 50 Then Msgbox(0,"Info","The half is done...", 1)
    $m = GUIGetMsg ()
    
    If $m = -3 Then ExitLoop
    
    If $m = $button Then
      GUICtrlSetData ($button,"Next")
      $s = $i;save the current bar-position to $s
      ExitLoop
    Else
        $s=0
      GUICtrlSetData ($progressbar1,$i)
      GUICtrlSetData ($progressbar2,(100 - $i))
      Sleep($wait)
    EndIf
    Next
    if $i >100 then
;       $s=0
        GUICtrlSetData ($button,"Start")
    endif
EndIf
until $msg = $GUI_EVENT_CLOSE

Pour la suppression des boutons pas de souci mais le probleme c'est le demarrage automatique et la boucle sans arret !
Image
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

#2

Message par Vins83 »

Peut etre que cela pourra t'aider:
[autoit]pause ( )
Func pause ( )
$i = 0
While $i < = 2
Sleep ( 0 )
$i = $i + 1
ProgressOn ( "Installation des Programmes" , "Une autre installation est en cour ..." , "" )
For $j = 1 To 100 Step 1
Sleep ( 100 )
ProgressSet ( $j , "" )
Next
ProgressSet ( 100 , "" , "Une autre installation est en cour" )
Sleep ( 500 )
ProgressOff ( )
WEnd
EndFunc ; == >pause[/autoit]
Avatar du membre
MiXS
Niveau 4
Niveau 4
Messages : 82
Enregistré le : mar. 13 nov. 2007 23:10
Status : Hors ligne

#3

Message par MiXS »

Ah nickel merci
petite erreur dans ton script au niveau du while
[autoit]"While $i < = 2 "[/autoit]
a remplacer par
[autoit]"While 1
$i < = 2"[/autoit]
Merci a toi :wink:
Image
Avatar du membre
MiXS
Niveau 4
Niveau 4
Messages : 82
Enregistré le : mar. 13 nov. 2007 23:10
Status : Hors ligne

#4

Message par MiXS »

Voila et la avec deux :wink:

[autoit]#include <GUIConstants.au3>
GUICreate ( "My GUI Progressbar" , 220 , 100 , 100 , 200 )
$progressbar1 = GUICtrlCreateProgress ( 10 , 10 , 200 , 20 )
GUICtrlSetColor ( - 1 , 32250 ) ; not working with Windows XP Style
$progressbar2 = GUICtrlCreateProgress ( 10 , 40 , 200 , 20 )
GUISetState ( )
$wait = 20; wait 20ms for next progressstep
$s = 0; progressbar - saveposition
while 1
For $i = $s To 100
$s = 0
GUICtrlSetData ( $progressbar1 , $i )
GUICtrlSetData ( $progressbar2 , ( 100 - $i ) )
Sleep ( $wait )
Next
if $i >100 then
; $s = 0
endif
WEnd[/autoit]
Encore merci Vins83
Image
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Concours de ProgressBar .. Hihi

#5

Message par Tlem »

Voici un exemple d'une jolie ProgressBar :

Code : Tout sélectionner

#include <GUIConstants.au3>
HotKeySet("{ESC}", "endscript")
local $m = 1
GUICreate("Installation en Cours ...", 252, 25,-1,-1,$WS_CAPTION)
GuiCtrlCreateGraphic(1, 5, 250,15)
GUICtrlSetColor(-1, 0x000000)
$ba = GuiCtrlCreateGraphic(1, 6, 49,13)
GUICtrlSetBkColor($ba, 0x0FF000)
GuiSetState()

_SliderRight()

Func _SliderRight()
    For $m = 0 To 201 Step 3
        GUICtrlSetPos($ba, $m, 6, 49, 13)
        Sleep(50)
    Next
    _getmsg()
    _SliderLeft()
EndFunc   ;==>_SliderRight

Func _SliderLeft()
    For $m = 201 To 0 Step -3
        GUICtrlSetPos($ba, $m, 6, 49, 13)
        Sleep(60)
    Next
    _getmsg()
    _SliderRight()
EndFunc   ;==>_SliderLeft

Func _getmsg()

    $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit

    ; Ajouter un test quelconque pour sortir de la boucle (Le process d'une install par exemple).

EndFunc   ;==>_getmsg

Func endscript()
    Exit
EndFunc   ;==>endscript
Modifié en dernier par Tlem le dim. 16 déc. 2007 23:49, modifié 1 fois.
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
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#6

Message par Tlem »

Une autre :

Code : Tout sélectionner

#include <GUIConstants.au3>
HotKeySet("{ESC}", "endscript")
Global $ba, $m
   
$Ca = GUICreate ( "" , 254 , 49 , -1 , -1 , $WS_POPUP,$WS_EX_TOPMOST+$WS_EX_WINDOWEDGE+$WS_EX_DLGMODALFRAME)
GUISetBkColor ( 0x000000 , $Ca )
$Da = GUICtrlCreateLabel ("    Installation en cours ...",  20, 2, 250,22)
GuiCtrlCreateGraphic(-1, 1, 256,49,$SS_SUNKEN)
GUICtrlSetColor(-1, 0XFFFFFF)
GUICtrlSetColor ( $Da, 0XFFFFFF)
GUICtrlSetFont ($Da, "12" , "50" , "" , "Courrier New")
GUICtrlCreateGraphic(1, 29, 254,19)
GUICtrlSetColor(-1, 0xFF0000)
GuiSetState(@SW_SHOW)
_SliderRight()

Func _getmsg()
   
        $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit
   
    ;put something to stop progressbar

EndFunc

Func _SliderRight()
    Local $newcolor, $color = 0x090000
    For $m = 0 To 240 Step 15
        $newcolor += $color 
        $ba = GUICtrlCreateGraphic( $m, 30, 19,19)
        GUICtrlSetGraphic(-1,$GUI_GR_COLOR, $newcolor,$newcolor)
        GUICtrlSetGraphic(-1,$GUI_GR_ELLIPSE, 4,4, 9,9)
        Sleep(30)
    Next
    _getmsg()
    _SliderLeft()
EndFunc

Func _SliderLeft()
    Local $backcolor,$color = 0x090000
    For $m = 240 To 0 Step -15
        $backcolor += $color   
        $ba = GUICtrlCreateGraphic( $m, 30, 19,19)
        GUICtrlSetGraphic(-1,$GUI_GR_COLOR, $backcolor,$backcolor)
        GUICtrlSetGraphic(-1,$GUI_GR_ELLIPSE, 4,4, 9,9)
        Sleep(30)
    Next
    _getmsg()
    _SliderRight()
EndFunc

Func endscript()
    Exit
EndFunc
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
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#7

Message par Tlem »

Encore une autre :

Code : Tout sélectionner

#include <GUIConstants.au3>
HotKeySet("{ESC}", "endscript")

$Ca = GUICreate ( "" , 250 , 46 , -1 , -1 , $WS_POPUP,$WS_EX_TOPMOST+$WS_EX_WINDOWEDGE+$WS_EX_DLGMODALFRAME)
GUISetBkColor ( 0x000000 , $Ca )
$Da = GUICtrlCreateLabel ("    Installation en cours ...",  23, -1, 250,23)
GuiCtrlCreateGraphic(-1, 1, 252,45,$SS_SUNKEN)
GUICtrlSetColor(-1, 0XFFFFFF)
GUICtrlSetColor ( $Da, 0XFFFFFF)
GUICtrlSetFont ($Da, "12" , "50" , "" , "Courrier New")
GUICtrlCreateGraphic(1, 23, 250,20)
GUICtrlSetColor(-1, 0x007F00)
GuiSetState(@SW_SHOW)
_SliderRight()

Func _getmsg()
        $Msg = GUIGetMsg()
    If $Msg = $GUI_EVENT_CLOSE Then Exit
   
    ; Ajouter un test quelconque pour sortir de la boucle (Le process d'une install par exemple).

EndFunc

Func _SliderRight()
        Local $newcolor,$color = 0x050000
    For $m = 0 To 245 Step 5
        $newcolor += $color 
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $newcolor)
        Sleep(50)
    Next
    _getmsg()
    _SliderLeft()
EndFunc

Func _SliderLeft()
    Local $backcolor,$color = 0x050000
    For $m = 245 To 0 Step -5
        $backcolor += $color   
        $ba = GUICtrlCreateLabel( "", $m, 25, 4,16)
        GUICtrlSetBkColor($ba, $backcolor)
        Sleep(50)
    Next
    _getmsg()
    _SliderRight()
EndFunc

Func endscript()
    Exit
EndFunc
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
MiXS
Niveau 4
Niveau 4
Messages : 82
Enregistré le : mar. 13 nov. 2007 23:10
Status : Hors ligne

#8

Message par MiXS »

Ah c'est super (j'aime bien la 2eme)
Merci Tlem :wink:
Image
Répondre