Un petit code pour afficher une fenêtre de progression pendant que votre programme principal fait autre chose
Code : Tout sélectionner
Enumeration
#HAUTEUR=80
#LARGEUR=200
#PROGRESSION
#TEXTE
#STATUS
EndEnumeration
Global FermerFenetre,FenetreInitialisee
Procedure Visuel(*ptr)
OpenWindow(0,0,0,#LARGEUR,#HAUTEUR,"Titre",#PB_Window_ScreenCentered)
TextGadget(#TEXTE,10,10,#LARGEUR-20,20,"",#PB_Text_Center)
ProgressBarGadget(#PROGRESSION,10,30,#LARGEUR-20,20,0,100,#PB_ProgressBar_Smooth)
CreateStatusBar(#STATUS,WindowID(0))
AddStatusBarField(#LARGEUR)
AddWindowTimer(0,123,250)
FenetreInitialisee=#true
Repeat
If WaitWindowEvent()= #PB_Event_Timer
Value = (Value + 5) % 100
SetGadgetState(#PROGRESSION,Value)
EndIf
Until FermerFenetre=#true
EndProcedure
Procedure ConsoleText(StatusText.s,Text.s,Delai)
PrintN(Text)
StatusBarText(#STATUS,0," "+StatusText)
SetGadgetText(#TEXTE," "+Text)
Delay(Delai)
EndProcedure
OpenConsole()
ConsoleTitle("Progression")
CreateThread(@Visuel(),0)
Repeat
Delay(1)
Until FenetreInitialisee=#true
ConsoleText("Veuillez patienter (étape 1/3)","Initialisation",2000)
ConsoleText("Veuillez patienter (étape 2/3)","Décompression",2000)
ConsoleText("Veuillez patienter (étape 3/3)","installation",4000)
HideGadget(#PROGRESSION,#true)
ConsoleText("Merci d'avoir patienté","Installation terminée",2000)
FermerFenetre=#true
For n=1 To 80
Delay(100)
Print(".")
Next