Je n'arrive pas à comprendre pourquoi mon programme ne fonctionne pas, ou plutôt si j'ai toujours un problème de reset du gadgeteventID()
Comme pureBasic se souvient de la valeur de cet evenement, dans ma boucle principale il fait toujours la même action. Quelqu'un pourrait-il me dire comment après avoir exécuté ma procédure Enregistrer Fichier(voir le code ci-joint) je pourrais reseter la valeur de EventGadgetID() pour que mon programme n'exécute pas sans ma procédure Enregistrer fichier
Merci d'avance
Henri
Code : Tout sélectionner
; ------------------------------------------------------------
;
; PureBasic - Chrono
;
; Librairie(s) utilisée(s): PureTools_I
;
; Dernière Modification: le 12/06/2004
;
; ------------------------------------------------------------
Declare MonChrono()
Declare CalculTempsIntermediaire()
Declare EnregistrerFichier()
Global CentiemeSecondes.b
Global Secondes.b
Global Minutes.b
Global Heures.b
Global NombreTours.b
Global FlagGadgetEvent.b
Global ElapsedTime.l
Global TempsAffiche$
Global Centiemes.l
Global TempsSecondes.l
Global Secondes.b
Global Longueur.l
Global TempsPrecedent.l
Global TempsIntermediaire.l
Global temp$
Global aSecondes.b
Global LngCentieme.b
Global Vitesse.f
Global Longueur.l
Global Evenement.b
Centiemes=0
Secondes=0
Minutes=0
Heures=0
NombreTours=0
ElapsedTime=0
Vitesse=0
longueur=0
TempsPrecedent=0
TempsIntermediaire=0
FlagGadgetEvent=0
Evenement=0
OpenWindow(1, 100, 200, 500, 380, #PB_Window_SystemMenu, "Chrono")
CreateGadgetList(WindowID())
StringGadget(2,100, 5, 170, 30, "")
ButtonGadget(3, 70, 80, 60, 30, "Démarrer" ,#PB_Button_Default)
ButtonGadget(4, 170, 80, 60, 30, "Arrêter" ,#PB_Button_Default)
ButtonGadget(5, 270, 80, 60, 30, "Interm." ,#PB_Button_Default)
ButtonGadget(6, 370, 80, 60, 30, "Zéro" ,#PB_Button_Default)
ButtonGadget (15,220,320,80, 30, "Enregistrer",#PB_Button_Default)
TextGadget(7, 20, 13, 75, 20, "HH:MM:SS:CC")
TextGadget(8, 280,13, 350, 20, "Longueur du circuit en mètres: ")
StringGadget(9,430, 10 ,40, 20,"",#PB_String_Numeric)
LoadFont(12,"courrier", 18, #PB_Font_Bold)
SetGadgetFont(2,UseFont(12) )
SetGadgetText(2, "00:00:00:00")
SetGadgetText(9,"1000")
ListIconGadget(10, 100, 140, 300, 150, "Tour n°:", 60,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines )
AddGadgetColumn(10, 2, "Temps intermédiares", 120)
AddGadgetColumn(10,3,"Vitesse en Km/h",180)
Repeat
WaitWindowEvent()
Evenement=EventGadgetID()
If Evenement=3
StartTimer( 0, 10, @MonChrono() )
Delay(10)
ElseIf Evenement=4
EndTimer(0 )
ElseIf Evenement=6
SetGadgetText(2, "00:00:00:00")
CentiemeSecondes=0
Secondes=0
Minutes=0
Heures=0
ClearGadgetItemList(10)
NombreTours=0
ElseIf Evenement=5 And FlagGadgetEvent=0
CalculTempsIntermediaire()
ElseIf Evenement=15
EnregistrerFichier()
EndIf
Until WaitWindowEvent() = #PB_Event_CloseWindow
Procedure MonChrono()
ElapsedTime=ElapsedTime+1
CentiemeSecondes=CentiemeSecondes+1
If CentiemeSecondes>99
CentiemeSecondes=0
Secondes=Secondes+1
EndIf
If CentiemeSecondes<10
CentiemeSeconde$="0"+Str(CentiemeSecondes)
Else
CentiemeSeconde$=Str(CentiemeSecondes)
EndIf
If Secondes>59
Secondes=0
Minutes=Minutes+1
EndIf
If Secondes<10
Seconde$="0"+Str(Secondes)
Else
Seconde$=Str(Secondes)
EndIf
If Minutes >59
Minutes=0
Heures=Heures+1
EndIf
If Minutes<10
Minute$="0"+Str(Minutes)
Else
Minute$=Str(Minutes)
EndIf
If Heures>24
Heures=0
EndIf
If Heures<10
Heure$="0"+Str(Heure$)
Else
Heure$=Str(Heures)
EndIf
Temp$=Heure$+":"+Minute$+":"+Seconde$+":"+CentiemeSeconde$
SetGadgetText(2, temp$)
EndProcedure
Procedure CalculTempsIntermediaire()
FlagGadgetEvent=1
NombreTours=NombreTours+1
Longueur$=GetGadgetText(9)
Longueur=Val(Longueur$)
TempsIntermediaire=ElapsedTime-TempsPrecedent
aCentieme$=Str(TempsIntermediaire)
aCentieme$=Right(aCentieme$,2)
aSecondes=Int(TempsIntermediaire/100)
lngHeure = Int(aSecondes / 3600)
lngMinute = Int((aSecondes - (lngHeure * 3600)) / 60)
lngSeconde = Int(aSecondes - (lngHeure * 3600) - (lngMinute * 60))
If LngHeure<10
LngHeure$="0"+Str(LngHeure)
Else
LngHeure$=Str(LngHeure)
EndIf
If LngMinute<10
LngMinute$="0"+Str(LngMinute)
Else
LngMinute$=Str(lngMinute)
EndIf
If LngSeconde<10
LngSeconde$="0"+Str(LngSeconde)
Else
LngSeconde$=Str(LngSeconde)
EndIf
TempsInt$=LngHeure$+":"+LngMinute$+":"+LngSeconde$+":"+aCentieme$
longueur$=GetGadgetText(9)
longueur=ValF(longueur$)
Vitesse=longueur*(360/TempsIntermediaire)
AddGadgetItem(10, 0,Str(NombreTours)+Chr(10)+TempsInt$+Chr(10)+StrF(Vitesse,2)+Chr(10))
TempsPrecedent=Elapsedtime
Delay (10) ;Pour réduire la réactivité de WaitwindowEvent
FlagGadgetEvent=0
EndProcedure
Procedure EnregistrerFichier()
NomFichier$ = SaveFileRequester("Enregistrer", "temps.txt", "Fichiers Textes|*.txt", 1)
OpenFile(0, NomFichier$)
CloseFile(0)
Evenement=0
EndProcedure