![]() |
Ein schnelleren Timer? Gibt es sowas?
Hallo Leute,
ich habe eine Frage, gibt es einen schnelleren Timmer? Also noch weniger als 1ms? Ich muss was programmieren und hab leider einen groben Fehler gemacht. Eine Prozedure wird vom Timer alle 1ms aufgerufen, und in der Prozedure wird eine Zählervariable hochgezählt. Die Zahl steht leider für eine Minute, und nach 60 Minuten wird eine Stundenzählervariable hochgezählt und so weiter. Im Klartext: Auf einer Anzeige sieht man wie die Zeit rast, jedoch hab ich vergessen die Sekunden mit zuzählen. Würde ich es jetzt hinzufügen, entspricht 1 Minute= 1 Sekunde und 1 Stunde = 60Minuten. Bis da ein Tag vergeht, dauert es viieeel zu lange...(24Min^^) Gibt es einen Timer der noch schneller ist? Ich könnte auch eine Schleife dazu benutzen, aber leider würde jeder PC in die Knie gehen, weil es unendlich gehen soll. Ich hoffe ihr konntet folgen... Sarte |
Re: Ein schnelleren Timer? Gibt es sowas?
Auch wenn du den Timer auf 1 ms gestellt hast, löst er mx. alle 20ms (oder so) aus ;)
Nimm mal ein Schleife, die könnte etwas schneller zählen ;) Und derr Pc geht schon nicht so leicht in die Knie - wenn du allerdings möchtest, dass die GUI benutzbar bleibt, solltest du ab und zu Application.Processmessages() aufrufen ;) |
Re: Ein schnelleren Timer? Gibt es sowas?
hmm aber welche Schleife soll ich benutzen?
Mit for schleife geht es schlecht, weil ich brauch halt einen Endwert und bei mir ist es doch unendlich... Soll ich dass dann mit einer Repeat schleife machen? Würde eigentlich gehen^^ Aber wäre das nicht wieder zu schnell? wenn mein PC freie Bahn hat? Könnte man die Schritte verlangsamen? |
Re: Ein schnelleren Timer? Gibt es sowas?
Du hast eindeutig einen Fehler in deinem Programmaufbau! Wenn du einen Timer mit so geringem Intervall brauchst, belegst du zwangsläufig einen Prozessor. Windows bietet den sogenannten Multimedia Timer an, der so geringe Intervalle beherrscht. Du solltest dir aber etwas anderes überlegen. Es genügt doch vollkommen, wenn du als Intervall 100 Millisekunden wählst.
|
Re: Ein schnelleren Timer? Gibt es sowas?
soll ich diese Komponente benutzen für nen Multimedia Timer?
![]() |
Re: Ein schnelleren Timer? Gibt es sowas?
Besser wäre es, das Programmdesign zu überdenken und nicht mit allen Möglichkeiten versuchen, einen schnellen Timer zu bekommen.
|
Re: Ein schnelleren Timer? Gibt es sowas?
hmm
mehr als das hier:
Delphi-Quellcode:
Ist es auch nicht, es wird über einen Timer aufgerufen. Also der Timer ruft eine Funktion auf:
procedure TCalculation.SetTime;
var aminute,anhour,aday: Integer; begin aminute := minutes; anhour := hours; aday := days; inc(aminute); if aminute = 60 then begin aminute := 0; inc(anhour); end; if (anhour <> 0)and(anhour mod 6 = 0) then begin //einkaufspreis end; if anhour = 24 then begin anhour := 0; inc(aday); end; minutes := aminute; hours := anhour; days := aday; end;
Delphi-Quellcode:
Das wars... und der Wert wird dann angezeigt, ist das so viel für ein Programm?
function TCalculation.GetMinute:Integer;
begin result:= minutes; end; |
Re: Ein schnelleren Timer? Gibt es sowas?
Du kannst auch anstatt in 1er-Schritten in 10er-Schritten zählen
|
Re: Ein schnelleren Timer? Gibt es sowas?
Das war auch mein Vorschlag.
Es kommt überhaupt nicht darauf an, wie viel du in der Timer-Routine machst - es ist allein schädlich, dass das Intervall so klein ist! Wenn du in einem Multitasking-System ein Intervall kleiner als die Zeitscheibengröße willst, kannst du nicht mehr mit einer niedrigen CPU-Auslastung rechnen. Auch zum Multimedia-Timer sagt die Dokumentation: Zitat:
|
Re: Ein schnelleren Timer? Gibt es sowas?
Zitat:
Zitat:
Es ist nicht so wichtig, ob ich eine niedrige Auslastung habe... Der Timer hier: ![]() Und ist schnell...und mein die Auslastung liegt bei 3%... das ist nichts |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
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