Zeit mit MilliSecs()

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

bruce185

Betreff: Zeit mit MilliSecs()

BeitragDi, Okt 04, 2005 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe ein problem, und zwar möchte ich die Zeit wie lang man das Fenster offen hat in BlitzBasic anzeigen lassen, ich habe das so probiert:

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()

Global Spalte = 1

schrift = LoadFont("Arial", 17)
SetFont schrift

zeit = MilliSecs()-1000

Repeat
Cls

Repeat
Cls

If MilliSecs()-zeit > 1000
  Sekunden = Sekunden + 1

  If Sekunden > 59 Then
    Minuten = Minuten + 1
    Sekunden = 0
  EndIf

  If Minuten > 59 Then
    Stunden = Stunden + 1
    Minuten = 0
  EndIf

  zeit = MilliSecs()
EndIf

Text 400,20, Stunden + ":" + Minuten + ":" + Sekunden

Flip
Until KeyHit(1)
End


leider laufen die Sekunden zu schnell, ich möchte das es so aussieht:

00:00:00 nach eine sekunde 00:00:01 nach zwei sekunden 00:00:02
nach 15 sekunden 00:00:15 u.s.w. wisst ihr vieleicht wie das richtig gemacht wird, für jede hilfe bin ich euch sehr dankbar, ich danke euch schonmal Confused

MFG Andreas

bruce185

BeitragDi, Okt 04, 2005 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab das jetzt hinbekommen das es langsam läuft, wie normale Sekunden, ich möchte jetzt nur das es so aussieht:

00:00:00, wie oben beschrieben, ich danke euch schonmal Smile

MFG Andreas
 

Klaas

BeitragDi, Okt 04, 2005 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, das geht auch viel einfacher

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer(BackBuffer())

While Not KeyHit(1)
   s = (MilliSecs() / 1000) Mod 60
   m = (MilliSecs() / 60000) Mod 60
   h = (MilliSecs() / 3600000) Mod 24
   
   Cls
   Text 100,100,h+":"+m+":"+s
   Flip
Wend
End


EDIT:
die Formatierung kannst du so machen. Halt prüfen ob die Zahl kleiner als 10 ist und dann eine Null voranstellen
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer(BackBuffer())

While Not KeyHit(1)
   s$ = (MilliSecs() / 1000) Mod 60
   m$ = (MilliSecs() / 60000) Mod 60
   h$ = (MilliSecs() / 3600000) Mod 24
   
   If (Int(s$) < 10) Then s$ = "0"+s$
   If (Int(m$) < 10) Then m$ = "0"+m$
   If (Int(h$) < 10) Then h$ = "0"+h$

   Cls
   Text 100,100,h+":"+m+":"+s
   Flip
Wend
End

bruce185

BeitragDi, Okt 04, 2005 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die antwort, aber das meine ich nicht.
Ich möschte wenn ich mein Programm starte dann soll es von 0 anfangen,
z.B. so 00:00:00 das man 2 stellige null sieht, und nach eine sekunde 00:00:01 jetzt sieht man nur eine null, nach 15 sekunden 00:00:15 jetzt sieht man bei die sekunden keine null mer, so möchte ich das machen, wäre dir sehr dankbar für die hilfe Sad

Andreas

bruce185

BeitragDi, Okt 04, 2005 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
achso, werde es mal probieren mit Formatierungscode, und vielen dank für die hilfe Very Happy

Andreas
 

Klaas

BeitragDi, Okt 04, 2005 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
also halt bei null und nicht bei Systemstart ? .. hoffe ich hab dich verstanden

mußt du nur den Startwert jedesmal abziehen

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer(BackBuffer())

st = MilliSecs()

While Not KeyHit(1)
   delta_t = MilliSecs() - st
   
   s$ = (delta_t / 1000) Mod 60
   m$ = (delta_t / 60000) Mod 60
   h$ = (delta_t / 3600000) Mod 24
   
   If (Int(s$) < 10) Then s$ = "0"+s$
   If (Int(m$) < 10) Then m$ = "0"+m$
   If (Int(h$) < 10) Then h$ = "0"+h$

   Cls
   Text 100,100,h+":"+m+":"+s
   Flip
Wend
End

bruce185

BeitragDi, Okt 04, 2005 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
cool, vielen dank es hat funktioniert Very Happy Very Happy Very Happy

Andreas

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group