Autor Beitrag
raven
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 54



BeitragVerfasst: Mo 03.02.03 22:23 
hi leutz

ich habe in den letzten tagen ne stoppuhr für nen bekannten gecodet (download: www.ravetech.de.tt) nur weicht das teil ab ... auf 3 minuten ca. 5 sekunden zu langsam ...

kann mir jemand sagen woran das liegt? Ich benutze die ganz normale Timer kompo ... intervall is 100, da ich millisekunden drinhab ...

Code:
(DV=Millisekunden, HV=Stunden, MV=Minuten, SV= Sekunden das sind jeweils integer variablen)

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
if dv<9 then
begin
dv:=dv+1;
end
else
if sv<59 then
begin
dv:=0;
sv:=sv+1;
end
else
if mv<59 then
begin
dv:=0;
sv:=0;
mv:=mv+1;
end
else
begin
dv:=0;
sv:=0;
mv:=0;
hv:=hv+1;
end;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.02.03 22:37 
Das liegt einfach daran, dass ein Timer bei Windows eine sehr niedrige Priorität hat. Das heißt Nachrichten an dein fenster werden eher abgearbeitet als ein WM_TIMER-nachricht in der Nachrichtenschlange. Bzw. wenn vor der WM_TIMER-Nachricht noch viele andere Nachrichten anstehen, muß dein programm eben so lange warten bis endlich die WM_TIMER-nachricht abgerabeitet werden kann.

Eine Lösung wäre ein Multimediatimer oder nimm QueryPerformanceCounter und QueryPerformanceFrequency.