Zeit messen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Zeit messen

Beitrag von Tsuki-Namida »

Hallo,
ich möchte eine Zeit messen und zwar wie folgt.

Ein Benutzer kann eine Zeit angeben in deren abständen eine Aktion regelmäsig passieren soll.

ich kann allerdings nicht mit Delay arbeiten weil ja das Programm an für diese Zeit still stehen bleibt und das darf nicht passieren da man auch andere aktionen werend dieser zeit machen kann.

Ich offe mal das Ihr mich versteht was ich in etwar brauche...
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Plattformunabhängig?
Sonst gettickcount_() für Windows( in Millisekunden nach Systemstart)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Wenn Du ein Fenster hast, nimmste SetTimer, findeste genug Beispiele im Forum
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

hmm wie soll das gehen? wenn ich den befehl im debug anzeige erscheint nur die zahl "115801984" und diese ändert sich nicht :?
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Ausserdem ist ElapsedMilliseconds() genau dasselbe wie gettickcount_() mit dem Vorteil, dass es auch unter Linux funzt.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Mit Fenster, Windows Only:

Code: Alles auswählen

Procedure Timer()
  Beep_(500, 100)
EndProcedure

Zeit.s = InputRequester("Zeit für Beep", "Bitte Sekunden angeben", "")
time = Val(Zeit) * 1000

If OpenWindow(0, 100,100,100,100,#PB_Window_SystemMenu,"Timertest")
  CreateGadgetList(WindowID(0))
  SetTimer_(WindowID(0), 0, time, @Timer())
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
(Freeware :lol: )
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

Ja da muss ich aber wieder mit "Delay" arbeiten... gibt es da keine andere Möglichkeit?
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Magix-Soft <Kain> hat geschrieben:Ja da muss ich aber wieder mit "Delay" arbeiten... gibt es da keine andere Möglichkeit?
Also müssen musst du goa nix...
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Magix-Soft <Kain> hat geschrieben:Ja da muss ich aber wieder mit "Delay" arbeiten... gibt es da keine andere Möglichkeit?
Wo ist da ein Delay im Code :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag von Tsuki-Namida »

PureBasic Hilfe hat geschrieben: StartTime = ElapsedMilliseconds() ; ermittelt den aktuellen Wert
Delay(1000) ; wartet 1000 Millisekunden
ElapsedTime = ElapsedMilliseconds()-StartTime ; der 'ElapsedTime' Wert sollte ca. 1000 Millisekunden betragen
Da brauche ich diesen befehl...
Antworten