Hi,
ich möchte für ein Programm eine Timer schreiben.
Dafür will ich die GetTickCount Funktion nutzen. Nur funktioniert es irgendwie nicht richtig.
Delphi-Quellcode:
procedure TForm1.Timer(dauer: integer);
var systime,zaehler: integer;
begin
zaehler:=0;
systime:=GetTickCount;
while dauer>zaehler do
begin
if (systime+1000)<=GetTickCount then begin
Inc(zaehler);
ListBox1.Items.Add(InttoStr(zaehler)); //zum test der ausgabe
systime:=GetTickCount;
end;
end;
end;
Das Programm scheint die Schleife auszuführen, aber die CPU Auslastung geht auf 100% und das Programm reagiert für die in der Variablen "dauer" nicht mehr.
Wenn die Zeit abgelaufen ist, bringt das Programm die Testausgabe auf einen Schlag.
Was läuft bei dieser Schleife schief?
Und ich hab nochmal eine Frage. Wie kann ich den Timer deklarieren, dass das Programm ihn aufrufen kann und dann für die mitgegebene Zeitdauer pausiert?
mfg bumpelwumpel