AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Die Zeit stoppen ohne Gettickcount

Ein Thema von whiteshark · begonnen am 5. Mär 2005 · letzter Beitrag vom 6. Mär 2005
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#11

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:18
Dynamische Arrays beginnen immer mit dem Index 0! Da dein Array laenge lang ist, knallt es natürlich am Ende von
Delphi-Quellcode:
for i:=1 to laenge do
        begin
        a[i]:=strtoint(form1.memo1.lines[i-1]);
        end;
(Btw: geniale Einrückung ).
Also muss es
Delphi-Quellcode:
  for i:=1 to laenge do
    begin
    a[i-1]:=strtoint(form1.memo1.lines[i-1]);
    end;
oder gleich
Delphi-Quellcode:
  for i:=0 to laenge-1 do
    begin
    a[i]:=strtoint(form1.memo1.lines[i]);
    end;
heißen.

[edit]Ja, in der "bubble"-Prozedur genauso
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#12

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:22
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount

  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:37
Zitat von Meflin:
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount
, die nicht unbedingt genau ist

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#14

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:41
Zitat von Aenogym:
Zitat von Meflin:
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount
, die nicht unbedingt genau ist

Aenogym
naja, also immerhin auf die millisekunde genau. was willst du mehr

  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:44
Zitat von Meflin:
Zitat von Aenogym:
Zitat von Meflin:
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount
, die nicht unbedingt genau ist

Aenogym
naja, also immerhin auf die millisekunde genau. was willst du mehr
[ot]einen neuen eintrag in deinem blog [/ot]
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#16

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 20:55
Ein Timer macht wohl ab 30-50ms Sinn. Da Timer die geringste Priorität überhaupt haben kannst du auch das auf einem ausgelasteten System knicken.

GetTickCount dürfte wohl die einfachste Möglichkeit sein relativ ( ) genau die Zeit zu messen.
Zitat von Aenogym:
[ot]einen neuen eintrag in deinem blog [/ot]
Schleimer!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#17

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 21:05
Zitat von Aenogym:
Zitat von Meflin:
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount
, die nicht unbedingt genau ist

Aenogym
Besonders weil man in der Praxis nie einen Intervall von einer Millisekunde erreichen wird. Bei minimalem Code schaffe ich auf meinem PC nur 15,6 Millisekunden.

[edit]Viel zu spät .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#18

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 21:06
Zitat von Meflin:
Zitat von Aenogym:
Zitat von Meflin:
es geht auch ohne gettickcount: einfach nen timer nehmen, interval 1 (1 millisekunde) und dann im onTimer Event eine countvariable erhöhen schwupps hast du eine tolle stoppuhr, ohne gettickcount
, die nicht unbedingt genau ist

Aenogym
naja, also immerhin auf die millisekunde genau. was willst du mehr
Nein, mit min. 1 milisekunde abweichung, da der Timer dann erst "nach einer millisekunde" anfängt zu zählen. Außerdem werden etwas mehr systemressourcen benötigt, da der Timer ja eingeschaltet werden muss und dann auch noch selbst arbeiten. GetTickCount ist eine Windows-Funktion und läuft grundsätzlich IMMER, weshalb diese Funktion KEINE zusätzlichen Ressourcen verbraucht.

Wobei das jedoch schon wieder haarspaleterei ist. Wenn man genug durchläufe macht, sodass Abweichungen von 10-20ms zu anderen Algos entstehen, sind die 1-2ms Abweichung eigentlich egal
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 21:10
Zu TTimer:
geringstes funktionierendes Intervall

unter Win XP: 10ms
unter Win 9x: 50ms

Also 1ms ist purer Schwachsinn, da du das nie erreichen wirst.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#20

Re: Die Zeit stoppen ohne Gettickcount

  Alt 5. Mär 2005, 21:12
Zitat:
Wobei das jedoch schon wieder haarspaleterei ist. Wenn man genug durchläufe macht, sodass Abweichungen von 10-20ms zu anderen Algos entstehen, sind die 1-2ms Abweichung eigentlich egal Wink
Das ist falsch. Der Timer wird (computerabhängig) nur etwa alle 20ms aktualisiert. Wenn du also Laufzeitunterschiede in diesem Bereich hast, wirst du die nicht von den Rundungsfehlern des Timers unterscheiden können. Sinnvoll kann man den Timer mit dieser Methode erst am Unterschieden von etwa einer Sekunde, da dann die Fehler vernachlässigbar klein werden.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz