Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TTimer auswerten?? (https://www.delphipraxis.net/1856-ttimer-auswerten.html)

Privateer3000 27. Dez 2002 18:59


TTimer auswerten??
 
Hoi Leuts,

Angenommen ein Timer ist auf 5000msec eingestellt.
Kann ich heraus finden an welcher Stelle er sich befindet,
bzw anzeigen wann das nächstemal der Wert erreicht ist??

sakura 27. Dez 2002 19:03

Re: TTimer auswerten??
 
Zitat:

Zitat von Privateer3000
Kann ich heraus finden an welcher Stelle er sich befindet,

Nein
Zitat:

Zitat von Privateer3000
bzw anzeigen wann das nächstemal der Wert erreicht ist??

Und Nein.

Zumindest nicht direkt. Du kannst natürlich eine weitere Variable (TDateTime) anlegen und in dieser die Urzeit des letzten Aufrufes speichern und schauen, wieviel Zeit noch übrig sein müsste. Haken an der Sache, der Timer ist nicht so genau mit der Anzahl der Millisekunden.

...:cat:...

Sebastian Nintemann 27. Dez 2002 19:30

Hallo Privateer3000, um solche Zeitmessungen zu machen nutze ich immer die Funktion GetTickCount, welche die Millisekunden seit Systemstart wiedergibt. Ist das gleiche Prinzip das sakura schon angesprochen hat, ich finde es nur übersichtlicher weil es direkt in Millisekunden ist. Nicht so genau, aber normalerweise reichts, jedenfalls für meine Zwecke, da der Timer sowieso nicht auf die Millisekunde genau ist müsste es auch für dich reichen.

Delphi-Quellcode:
//...
var
  NextEvent: DWORD;
//...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  NextEvent := GetTickCount + Timer1.Interval;
  //...
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := 'Noch '+IntToStr(NextEvent-GetTickCount)+'ms'
end;
PS: Nach 49,7 Tagen könnte es für ein sehr kurze Zeit zu einem merkwürdigen Ergebnis kommen :mrgreen:

Gruß, Sebastian

d3g 27. Dez 2002 19:36

Zitat:

Zitat von Grotesquery
PS: Nach 49,7 Tagen könnte es für ein sehr kurze Zeit zu einem merkwürdigen Ergebnis kommen :mrgreen:

Nicht unter Windows 95/98/ME: Da gibt's nach 49,7 Tagen Uptime einen Überlauf in einer DLL und darauf einen Systemabsturz. Naja, auch ein merkwürdiges Ergebnis ;-).

MfG,
d3g

Privateer3000 27. Dez 2002 19:44

würde das so gehen? (Wäre ein Beispiel)
Code:
 var pause: integer;
begin
pause:=10;
if pause = -1 then
begin
Label1.Caption := 'Weiter gehts!';
end
else
Label1.Caption := 'Noch ' + IntToStr(pause) + ' Sekunden bis nächstes Level';
dec (pause);
end;
ausgelöst wird dieses ereignis wenn der andere timer aktiv war.
Der Intervall von dem anderen Timer müsste dann so sein wie die Variable "pause".

sakura 27. Dez 2002 19:58

Dass Intervall des Timers müsste wohl eher bei 1000ms, also einer Sekunde liegen ;)

Privateer3000 27. Dez 2002 19:58

@Grotesquery

ja, sowas habe ich mir vorgestellt.
Denn das selbe in Grün , nämlich den Unis-Stempel nutze ich unter PHP.

Danke!

Sebastian Nintemann 27. Dez 2002 20:17

Zitat:

Zitat von d3g
Nicht unter Windows 95/98/ME: Da gibt's nach 49,7 Tagen Uptime einen Überlauf in einer DLL und darauf einen Systemabsturz.

Nach 49,7 Tagen käme es mir nichtmal komisch vor wenn System einen grünen Bluescreen von sich geben würde :mrgreen:

Gruß, Sebastian

Privateer3000 28. Dez 2002 00:05

nur wenn dann auch Pinguine über'n Screen hüpfen mit Schildchen auf den steht del c:\windows :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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