Voila, j'ai programmé un chrono via des timers. Mais il y a un problème : les 10è de secondes et les secondes ne sont pas syncro, et impossible de fermer avec la croix
Mon code :
Code : Tout sélectionner
Enumeration
#Window_0
#Button_0
#Button_1
#Chrono
#Text_0
EndEnumeration
If OpenWindow(#Window_0, 283, 104, 168, 206, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Jim'chrono")
If CreateGadgetList(WindowID())
ButtonGadget(#Button_0, 30, 130, 110, 30, "Commencer")
ButtonGadget(#Button_1, 30, 170, 110, 30, "Arrêter")
StringGadget(#Chrono, 60, 20, 90, 30, "")
TextGadget(#Text_0, 10, 20, 40, 20, "Temps : ")
EndIf
EndIf
cs = 0
ds = 0
s = 0
m = 0
dixs = 0
dixm = 0
mode = 0
Repeat
Event = WaitWindowEvent()
If Event=#WM_TIMER
Select EventwParam()
Case 1 ;/ Timer #1
ms = ms + 1
If ms = 10
ms = 0
EndIf
Case 2 ;/ Timer #2
cs = cs + 1
If cs = 10
cs = 0
EndIf
Case 3 ;/ Timer #2
ds = ds + 1
If ds = 10
ds = 0
EndIf
Case 4 ;/ Timer #2
s = s + 1
If s = 10
s = 0
EndIf
Case 5 ;/ Timer #2
m = m + 1
If m = 10
m = 0
EndIf
Case 6
dixs = dixs + 1
If dixs = 7
dixs = 0
EndIf
Case 7
dixm = dixm + 1
EndSelect
If mode = 0
cs = 0
ds = 0
s = 0
m = 0
dixs = 0
dixm = 0
EndIf
ElseIf Event=#PB_Event_Gadget
If EventGadgetID() = #Button_0
mode = 1
SetTimer_(WindowID(),2,10,0) ; 10 ms
SetTimer_(WindowID(),3,100,0) ; 100 ms
SetTimer_(WindowID(),4,1000,0) ; 1 s
SetTimer_(WindowID(),5,60000,0) ; 1 m
SetTimer_(WindowID(),6,10000,0) ; 1 m
SetTimer_(WindowID(),7,600000,0) ; 1 m
ElseIf EventGadgetID() = #Button_1
KillTimer_(WindowID(),2)
KillTimer_(WindowID(),3)
KillTimer_(WindowID(),4)
KillTimer_(WindowID(),5)
KillTimer_(WindowID(),6)
KillTimer_(WindowID(),7)
EndIf
EndIf
cs$ = Str(cs)
ds$ = Str(ds)
s$ = Str(s)
dixs$ = Str(dixs)
m$ = Str(m)
dixm$ = Str(dixm)
chrono$ = dixm$ + m$ + ":" + dixs$ + s$ + ":" + ds$ + cs$
SetGadgetText(#Chrono, chrono$)
If WaitWindowEvent() = #PB_Event_CloseWindow
End
EndIf
ForEver