Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi GetTickCount Problem (https://www.delphipraxis.net/108137-gettickcount-problem.html)

MrMyagi 7. Feb 2008 17:00

Re: GetTickCount Problem
 
Ja, das der Code BIS JETZT nur einmal
abgearbeitet wird ist mir bewusst, da dies ja
ersteinmal ein Test sein sollte, ob es überhaupt funktioniert.

Edit:
@shmia, der Code klappt auch nicht :(

Muetze1 7. Feb 2008 17:08

Re: GetTickCount Problem
 
Zitat:

Zitat von MrMyagi
Ja, das der Code BIS JETZT nur einmal
abgearbeitet wird ist mir bewusst, da dies ja
ersteinmal ein Test sein sollte, ob es überhaupt funktioniert.

Ja, der Fehler in dem einmaligen Beispiel habe ich und andere nun schon mehrfach geschrieben: Du speicherst den aktuellen TickCount in einer Variable und sofort danach fragst du den TickCount ab und schaust ob er schon 1 Sekunde weiter ist. Dieses sofort danach ist definitiv schneller als eine Sekunde, somit wird deine Bedingung nie erfüllt. Debug es doch selber, wobei es im Debugger wahrscheinlich klappt, da du im Einzelschrittmodus die Ausführung der Abfrage automatisch so lange verzögern wirst.

Zitat:

Zitat von MrMyagi
@shmia, der Code klappt auch nicht :(

Lass mich raten: Das von shmia extra mit "..." versehene Zuweisen von Start hast du in der selben Procedure/Methode wie die Abfrage die er darunter geschrieben hat?

MrMyagi 7. Feb 2008 17:11

Re: GetTickCount Problem
 
Nein, das habe ich in einer anderen Prozedur gepackt


mfG, Nico

Muetze1 7. Feb 2008 17:12

Re: GetTickCount Problem
 
Und wann wird die ausgeführt? Was sagt der Debugger? Kommt er zu der Stelle wo du die Progressbar veränderst? Wie sind die Werte bei der Abfrage? Du hast alles in deinem Delphi da um das Problem selber zu lösen, also nutze die wirklich vielfältigen Möglichkeiten des Debuggers von Delphi.

MrMyagi 7. Feb 2008 17:15

Re: GetTickCount Problem
 
Ja ich habe wirklich vorher
schon verdammt lange dran gesessen und immer hin und her getüfftelt,
weil das mit GetTickCount nicht so geklappt hat, wie ich will.

Im Prinzip soll es ja nur wie ein Timer funktionieren, welcher
nicht im Sekunden-Takt, sondern schneller aktualisiert.

Ich hoffe Ihr wisst jetzt was ich meine :coder2:

mfg, Nico

Nuclear-Ping 7. Feb 2008 17:17

Re: GetTickCount Problem
 
Sorry, aber stehst du auf dem Schlauch? Ich hab das Gefühl du drehst dich im Kreis. Ist dir überhaupt klar, was GetTickCount macht und wie du damit Zeitdifferenzen berechnest?

Du hast doch schon den Ansatz gehabt. Was du falsch gemacht hast, hat man dir auch schon paar mal gesagt?

MrMyagi 7. Feb 2008 17:20

Re: GetTickCount Problem
 
Wie meinst du das?
Ich habe ebend nur nochmal kurz versucht zu erläutern,
was ich eigendlich mit dem GetTickCOunt vorhabe,
weil ich dachte, dass dieses vielleicht zu kompliziert verstanden wurde
oder ähnliches. :roll:

Edit:
Ja, ich glaub das mit GetTickCount habe ich am Anfang wirklich falsch verstanden.
Allerdings glaube ich, dass ich es durch Eure Hilfe jetzt richtig verstanden habe
und mir is jetzt auch bewusst, das es bis zur Abfrage von dem Vergleich keine Sekunde dauert.
Ich habe dies erst so in mein Programm geschrieben, da ich dachte, dass die If-Anweisung solange wartet,
bis die Bedingung erfüllt ist, jedoch habe ich nicht berücksichtigt, das dies sich nicht automatisch aktualisiert.
Jedoch weiß ich dadurch nicht, wie ich dieses aktualisieren im ms-Takt, bis die Anweisung erfüllt ist,
erstellen soll

Nuclear-Ping 7. Feb 2008 17:23

Re: GetTickCount Problem
 
Naja, was soll das? Das ist weder kompliziert noch schwer.

Du brauchst ne Variable (StartTicks) die du irgendwann (FormCreate?) mit GetTickCount initialisierst.

Dann brauchst du ne Schleife, die immerwieder GetTickCount abfragt und den Start-Wert davon abzieht. Ergo hast du die Differenz in Millisekunden. Wenn dein Zielwert (1000ms = 1s) erreicht ist (auf >= (größer-gleich) und nicht nur = prüfen!), machst du das was du machen willst und setzt die StartTicks-Variable wieder mit GetTickCount, um den aktuellen Zeitwert festzuhalten und die nächsten 1000ms abzuwarten.

Noobinator 7. Feb 2008 17:27

Re: GetTickCount Problem
 
Probiers mal so

Delphi-Quellcode:
var start:Dword;
begin
start := gettickcount; // Startzeit merken
while true do // zum test mal ne Endlosschleife
  begin
     if gettickcount - start >= 1000 then //1 Sekunde abwarten
       begin
         Progressbar1.StepBy(10); // um 10 weitergehen
         start := gettickcount; // neue Zeit merken
       end;
  end;

MrMyagi 7. Feb 2008 17:28

Re: GetTickCount Problem
 
@Nuclear-Ping Sorry ,dass ich Euch soviele Nerven gekostet habe :oops:
aber ich bin mir jetzt sicher, das ich es so, wie du es
schließlich noch einmal formuliert hast verstanden habe :-D

Danke an alle

mfG, Nico


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz