Zeit soll gezählt werden ohne das Programm angehalten wird
Verfasst: 15.08.2005 14:01
Wie kann man die Zeit Stoppen ohne das das ganze Programm angehalten wird?
Geht das nur über Theards?
Geht das nur über Theards?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
start.l = timegettime_()
Delay(1000)
Debug timegettime_() - start.l ;timegettime_() ist viel genauer als ElapsedMilliseconds()
Code: Alles auswählen
;Hroudtwolf
;PB-Club.de
;Countdown Pieper
#Sekunde=1000
If OpenWindow(0, 0, 0, 100, 100, #PB_Window_SystemMenu|#pb_window_screencentered, "Countdown Beep")
Repeat
EventID.l = WindowEvent()
ImMoment.l=GetTickCount_()
If darfzaehlen.l=0:Startzeit.l=GetTickCount_()+#Sekunde:darfzaehlen.l=1:EndIf
If darfzaehlen.l=1 And ImMoment.l>Startzeit.l
Beep_(1000,20):Beep_(900,20): Beep_(800,20)
darfzaehlen.l=0
EndIf
Delay(5); Muss rein (CPU-Last senken)
Until EventID = #PB_Event_CloseWindow
EndIf
End
Code: Alles auswählen
;Hroudtwolf
;PB-Club.de
;Countdown Pieper
#Sekunde=1000
Countdown=10; Sekunden
If OpenWindow(0, 0, 0, 100, 100, #PB_Window_SystemMenu|#pb_window_screencentered, "Countdown Beep")
Repeat
EventID.l = WindowEvent()
ImMoment.l=GetTickCount_()
If darfzaehlen.l=0:Startzeit.l=GetTickCount_()+#Sekunde:darfzaehlen.l=1:EndIf
If darfzaehlen.l=1 And ImMoment.l>Startzeit.l
Beep_(1000,20):Beep_(900,20): Beep_(800,20)
Countdown-1
darfzaehlen.l=0
EndIf
If Countdown=0
For x=1 To 1000 Step 10
Beep_(1000+x,20)
Next x
Countdown=10
EndIf
Delay(5); Muss rein (CPU-Last senken)
Until EventID = #PB_Event_CloseWindow
EndIf
End
Code: Alles auswählen
If OpenWindow(0, 100, 200, 195, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "Windows Timer")
Timer = SetTimer_(WindowID(), 1, 10000, 0)
Repeat
EventID.l = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
Quit = 1
Case #WM_TIMER
Debug "Es ist Zeit"
EndSelect
Until Quit = 1
EndIf
KillTimer_(WindowID(), Timer) Code: Alles auswählen
StartTimer( #DeinTimer , MilliSec , @MachWas() )