Seite 1 von 1

ElapsedMilliseconds()

Verfasst: 24.04.2010 01:23
von Pneumo
Hi ihr alle :)
wie der Titel schon sagt geht es um den befehl "ElapsedMilliseconds()"
gefunden hab ich den befehl nur versteh ich noch nicht so ganz wie er funktioniert :oops:

es soll einfach nur von 120 im sekundentackt herabgezählt werden

gibt es sonst noch ne andere möglichkeit wie z.B. ne for/next schleife das man dort eine verzögerung einbauen kann??

freue mich über antworten ^^


__________________________________
Über Suche hab ich schon 2mal mit verschiedenen begriffen geschaut aber nichts hilfreiches gefunden
vllt bin ich aber auch zu blöd dafür :)

Re: ElapsedMilliseconds()

Verfasst: 24.04.2010 01:39
von ts-soft
Wenn Du eine GUI hast, solltest Du einen Timer nutzen, ansonsten:

Code: Alles auswählen

Procedure CountDown()
  Protected time, i

  Debug 120
  For i = 1 To 120
    time = ElapsedMilliseconds() + 1000
    While ElapsedMilliseconds() < time
      Delay(10) ; CPU nicht braten, wahr teuer ;)
    Wend
    Debug 120 - i
  Next
EndProcedure

CountDown()
gruß

Thomas

Re: ElapsedMilliseconds()

Verfasst: 24.04.2010 01:43
von Kaeru Gaman
ElapsedMilliseconds() gibt dir die Anzahl Millisekunden seit dem Start des Rechners an.

also, wenn du einen bestimmten Zeitraum messen willst,
musst du am Anfang notieren, wie hoch der Timer ist,
und dann eben checken, ob ein bestimmter Zeitraum vergangen ist.

Code: Alles auswählen

Timer = ElapsedMilliseconds() + 1000 ; eine Sekunde nach aktueller Zeit

For n=120 To 0 Step -1
  Debug "Sekunden: " + Str(n)
  While ElapsedMilliseconds() < Timer
    Delay(10)
  Wend
  Timer + 1000 ; eine Sekunde dazu
Next
wenn du allerdings ein Fenster hast, ist es besser, den Befehl AddWindowTimer zu verwenden.


PS:
*LOL* :lol:
außenrum ne For und innen ne While, die Beispiele sind sich ja verdammt ähnlich!
der gewichtige Unterschied ist, dass ich nicht jedes mal neu den Timer hole, sondern einfach 1000 dazuaddiere.
das hilft, die Abweichungen geringer zu halten. ;)

Re: ElapsedMilliseconds()

Verfasst: 24.04.2010 01:46
von ts-soft
Kaeru Gaman hat geschrieben:PS:
*LOL* :lol:
außenrum ne For und innen ne While, die Beispiele sind sich ja verdammt ähnlich!
Ich hab vorher gepostet :mrgreen:
Hab also nicht abgeguckt :lol:

Re: ElapsedMilliseconds()

Verfasst: 25.04.2010 21:00
von WPö
Zunächst einmal: Willkommen, Pneumo!
Pneumo hat geschrieben:es soll einfach nur von 120 im sekundentackt herabgezählt werden
Da hier nicht von einem Fenster die Rede ist, kann man auch Delay(1000) nehmen und 120 mal in einer Schleife ausführen. Der Zeitfehler ist zu vernachlässigen.
Pneumo hat geschrieben:gibt es sonst noch ne andere möglichkeit wie z.B. ne for/next schleife das man dort eine verzögerung einbauen kann??
Ja, aber Pfoten weg. Zu Zeiten eines C64, wo alle Rechner mit derselben Taktung arbeiteten, war das schon dreckiger Progrmmierstil, wenns auch funktionierte. Woher aber willst Du die Arbeitsfrequenz, Cache/Burst, RAM-Zugriffsgeschwindigkeiten usw. des Zielrechners kennen?
Pneumo hat geschrieben:Über Suche hab ich schon 2mal mit verschiedenen begriffen geschaut aber nichts hilfreiches gefunden
vllt bin ich aber auch zu blöd dafür :)
Signatur bitte mit Rechnerausstattung, Betriebssystemversion und verwendeten Programmen füllen. Danke!

Gruß - WPö