Page 1 sur 1
[R] Manipulation de deux progressbar en temps réel
Posté : lun. 19 déc. 2011 17:39
par loockys
Salut...
Je voudrais que les progressbars soient utilisable avec un temps prédéfini et manipulante en temps réel.
C'est-à dire que la progressbar1 ce lance, je voudrais pendant sont animation qu'ont puisse lancer la progressbar2,
sans réellement être obligé d'attendre la fin de la progressbar1 pour que la progressbar2 s'anime à son tour.
d'avance merci.
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 303, 253, 192, 124)
$Progress1 = GUICtrlCreateProgress(24, 48, 250, 25)
$Button1 = GUICtrlCreateButton("Lancer", 24, 8, 250, 25)
$Progress2 = GUICtrlCreateProgress(24, 166, 250, 25)
$Button2 = GUICtrlCreateButton("Lancer", 24, 126, 250, 25)
$Label1 = GUICtrlCreateLabel("0", 136, 96, 100, 17)
$Label2 = GUICtrlCreateLabel("0", 136, 205, 100, 17)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Btn1()
Case $Button2
_Btn2()
EndSwitch
WEnd
Func _Btn1()
For $i = 0 To 100 step 1
sleep(59)
GUICtrlSetData($Label1, $i)
GUICtrlSetData($Progress1,$i)
Next
EndFunc
Func _Btn2()
For $i = 0 To 100 step 1
sleep(59)
GUICtrlSetData($Label2, $i)
GUICtrlSetData($Progress2,$i)
Next
EndFunc
Re: [..] Manipulation de deux progressbar en temps réel
Posté : lun. 19 déc. 2011 17:57
par zeshrek
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 303, 253, 192, 124)
$Progress1 = GUICtrlCreateProgress(24, 48, 250, 25)
$Button1 = GUICtrlCreateButton("Lancer", 24, 8, 250, 25)
$Progress2 = GUICtrlCreateProgress(24, 166, 250, 25)
$Button2 = GUICtrlCreateButton("Lancer", 24, 126, 250, 25)
$Label1 = GUICtrlCreateLabel("0", 136, 96, 100, 17)
$Label2 = GUICtrlCreateLabel("0", 136, 205, 100, 17)
GUISetState(@SW_SHOW)
Global $ProgressBar1 = 0
Global $ProgressBar2 = 0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Btn1()
Case $Button2
_Btn2()
EndSwitch
If $ProgressBar1 = 100 Then
$ProgressBar1 = 0
AdlibUnRegister("_ProgressBar1")
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
EndIf
If $ProgressBar2 = 100 Then
$ProgressBar2 = 0
AdlibUnRegister("_ProgressBar2")
GUICtrlSetData($Label2, $ProgressBar2)
GUICtrlSetData($Progress2, $ProgressBar2)
EndIf
WEnd
Func _Btn1()
AdlibRegister("_ProgressBar1", 60)
EndFunc ;==>_Btn1
Func _Btn2()
AdlibRegister("_ProgressBar2", 60)
EndFunc ;==>_Btn2
Func _ProgressBar1()
$ProgressBar1 = $ProgressBar1 + 1
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
EndFunc ;==>_ProgressBar1
Func _ProgressBar2()
$ProgressBar2 = $ProgressBar2 + 1
GUICtrlSetData($Label2, $ProgressBar2)
GUICtrlSetData($Progress2, $ProgressBar2)
EndFunc ;==>_ProgressBar2
De rien
Edit : Au fait, tu auras remarqué que les fonctions sont étrangement identiques, ce qui fait qu'en théorie, tu n'es pas oblihé e faire autant de fonctions que de barres.
Tu peux en faire une seule a laquelle tu passes le N° de la barre a lancer.
J'essaye de te faire ca asap
Re: [..] Manipulation de deux progressbar en temps réel
Posté : mar. 20 déc. 2011 18:24
par loockys
Encore merci pour les astuces.
Dite moi, j'aimerais intégrer ce morceau de code, le problème c'est que je n'arrive pas à exécuter ce morceau de code en fin de chargement de notre progressbar. Auriez vous une suggestion ou une solution à mon problème. Merci.
► Afficher le texte
Code : Tout sélectionner
Func _Btn1()
AdlibRegister("_ProgressBar1", 60)
[color=#00BF00]Global $Resultat, $ch1 = Random(0,3,1)
$Resultat += $ch1
GUICtrlSetData($Craft1, $Resultat)[/color]
EndFunc ;==>_Btn1
Re: [..] Manipulation de deux progressbar en temps réel
Posté : mar. 20 déc. 2011 19:57
par sylvanie
Regardez plus attentivement le code proposé Par zeshreck.
Toute la parite verte doit se situer dans une fonction nommée _ProgressBar1 qui est appelée par le adlibregister de la fonction _Btn1().
Là je ne sais pas pourquoi vous tentez de cumuler le contenu des 2 fonctions en une ?
Re: [..] Manipulation de deux progressbar en temps réel
Posté : mar. 20 déc. 2011 20:42
par loockys
Merci infiniment, vous avez répondu à mes attente.
► Afficher le texte
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 303, 253, 192, 124)
$Progress1 = GUICtrlCreateProgress(24, 48, 250, 25)
$Button1 = GUICtrlCreateButton("Lancer", 24, 8, 250, 25)
$Progress2 = GUICtrlCreateProgress(24, 166, 250, 25)
$Button2 = GUICtrlCreateButton("Lancer", 24, 126, 250, 25)
$Label1 = GUICtrlCreateLabel("0", 136, 96, 100, 17)
$Craft1 = GUICtrlCreateLabel("0", 30, 96, 100, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x3399FF)
$Label2 = GUICtrlCreateLabel("0", 136, 205, 100, 17)
GUISetState(@SW_SHOW)
Global $ProgressBar1 = 0
Global $ProgressBar2 = 0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Btn1()
Case $Button2
_Btn2()
EndSwitch
If $ProgressBar1 = 100 Then
$ProgressBar1 = 0
AdlibUnRegister("_ProgressBar1")
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
[color=#00BF00] Global $Resultat, $ch1 = Random(1,3,1)
$Resultat += $ch1
GUICtrlSetData($Craft1, $Resultat)[/color]
EndIf
If $ProgressBar2 = 100 Then
$ProgressBar2 = 0
AdlibUnRegister("_ProgressBar2")
GUICtrlSetData($Label2, $ProgressBar2)
GUICtrlSetData($Progress2, $ProgressBar2)
EndIf
WEnd
Func _Btn1()
AdlibRegister("_ProgressBar1", 60)
EndFunc ;==>_Btn1
Func _Btn2()
AdlibRegister("_ProgressBar2", 60)
EndFunc ;==>_Btn2
Func _ProgressBar1()
$ProgressBar1 = $ProgressBar1 + 1
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
EndFunc ;==>_ProgressBar1
Func _ProgressBar2()
$ProgressBar2 = $ProgressBar2 + 1
GUICtrlSetData($Label2, $ProgressBar2)
GUICtrlSetData($Progress2, $ProgressBar2)
EndFunc ;==>_ProgressBar2
Re: [R] Manipulation de deux progressbar en temps réel
Posté : mer. 14 mars 2012 12:13
par ELGAMALI
Lorsque je compile le scripte de zeshrek pour obtenir un fichier .exe, l’application ne s’exécute pas, par contre lorsque j’exécute le scripte à partir de Autoit : TOOLS/GO le script marche impeccablement.
Tester sur tous les os Windows xp/7/2003/2000/…
Il est ou le problème merci
► Afficher le texte
Code : Tout sélectionner
#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Installation......", 392, 120, 192, 124)
$Progress1 = GUICtrlCreateProgress(24, 75, 250, 25)
$Button1 = GUICtrlCreateButton("Lancer", 24,40, 250, 25)
$Label1 = GUICtrlCreateLabel("0", 275, 12, 150, 120)
GUICtrlSetFont(-1, 75, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Veillez passionter.Vous ête sur le point d'installer XXXXX sur votre ordinateur.", 24, 6, 350, 25, 0)
GUISetState(@SW_SHOW)
Global $ProgressBar1 = 0
Global $ProgressBar2 = 0
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Btn1()
setup()
EndSwitch
If $ProgressBar1 = 100 Then
$ProgressBar1 = 0
AdlibUnRegister("_ProgressBar1")
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
EndIf
if ProcessExists("Relance.exe") Then Exit
WEnd
Func _Btn1()
AdlibRegister("_ProgressBar1", 350)
EndFunc ;==>_Btn1
Func _ProgressBar1()
$ProgressBar1 = $ProgressBar1 + 1
GUICtrlSetData($Label1, $ProgressBar1)
GUICtrlSetData($Progress1, $ProgressBar1)
If $ProgressBar1 = 100 Then Exit
EndFunc ;==>_ProgressBar1
Func setup()
ShellExecute(@ProgramFilesDir&"\ Dossier?\xxx.exe" )
EndFunc
Re: [R] Manipulation de deux progressbar en temps réel
Posté : mer. 14 mars 2012 15:45
par ELGAMALI
La solution est évidente: remplacez : ShellExecute par RunWait
Re: [R] Manipulation de deux progressbar en temps réel
Posté : mer. 14 mars 2012 21:18
par Tlem
Question :
ELGAMALI a écrit :Il est ou le problème merci
Réponse :
ELGAMALI a écrit :La solution est évidente: remplacez : ShellExecute par RunWait
ELGAMALI ce vouvoie lui même !!!

Re: [R] Manipulation de deux progressbar en temps réel
Posté : mer. 14 mars 2012 21:22
par TT22
ELGAMALI a écrit :La solution est évidente: remplacez remplacer : ShellExecute par RunWait
A une lettre près

Re: [R] Manipulation de deux progressbar en temps réel
Posté : mer. 14 mars 2012 21:37
par Tlem
D’où l'importance de '
lortografe' ...
