Cerianly not the processor. Even with affinity set to use 1 processor, still there (and HT is off on my machine). When I take the program to another persons house, 4 so far, the problem still exists. When I was using an athlon 1800+ with a completely different computer, the problem was the same.
It is very strange. I will now upload a new test file, since the other is dead. This one doesn't use timers. It uses a loop and unfortunately for me, the problem is STILL there.

This is not a timer problem at all....its worse. Seems that iterations are being limited?


It is possible maybe that maybe some hardware I have has affected the proper running of my computer. Even when all drivers were not installed however, the problem still existed.

The things I have never changed recently are:

Soundcard, Hauppauge 350, Pinnacle Studio 9 DV. Other than that my entire system has changed once including delphi version. I have used delphi 4, 7 and 2005, all same result I have used Win 2000 with SP4 and XP. Same result. Infact, the code below will show you that indeed there is something truly bizarre going on:


Code:
While (Finished=False)do
begin
Currenttime:=Timegettime-StartTime

If (CurrentTime>9)then
begin
inc(TheCounter);
Starttime:=TimegetTime;
end;

Application.processmessages;

end;

Explanation: When currenttime is greater than 9, the counter is incremented. This incremementation should be 100 times a second, since timegettime is the same as gettickcount.

What Happens: If dxdiag or msn messenger (to name 2) applications are not open on screen the result is wrong. What happens on my machines atleast (and then all machines I take the exe to) is the counter goes up 32 times a second..and not 100. All values in the place of 17 display erroneous results. If I set to 100, i would expect TheCounter to go up by 10 times a second but that is not what I get.

The Test:

My test is simple. I have a link below which basically has the code above. I want you people to test the following:

1. If the exe supplied with the program counts up 100 times a second.
2. Once YOU have compiled it, does it go up by 100 times a second.
3. Send me YOUR compiled exe so I can test it on my machine and other peoples machines

This will tell me:

1. If the problem is machine dependant
2. If the problem is soley because I am compiling the source

Thanks to all that participate but if this problem still exists on my test machines (4 of them) with YOUR exe's, then we have a major problem here.....

Please note that the program has a normal timer on the form. This counts TEN seconds and then gives you the number of seconds elaspsed when The Counter has reached 1000. In other words, the above example should give 1000 (100 a sec * 10 sec) after 10 seconds Smile If it does not...the result follows the pattern I am experiencing.

If it does not also try having dxdiag opened, or msn messenger open on screen (not in task bar).

---------
Bottom line:

Why the hell would dxdiag or msn messenger being opened sort the problem out temporrarily as long as they are open on my machine? (this "fix" doesn't seem to work on any machine I test the exe on so far apart from my own). The problem still exists when application.processmessages is not called, so that isn't it either

Seifer Almasy

THE TEST FILE WITH SOURCE.

MY FTP SERVER:

If you want to access through IE (note mozilla firefox cannot upload):

FTP://thetest@DLPB.kicks-ass.net:2121 (leave password box empty)

If you want to access through FTP client (recommended):

Server: DLPB.kicks-ass.net
Port 2121
Username: thetest (case sensitive)
Pass: (no password)


Remember please, to upload your own exe after compiling the source on your end. Upload back to my FTP server if you will (give it a unique name).

Thanks to all that participate, because of this problemis not just me, then all of us using idle loops etc for our delphi games are in trouble on atleast a significant amount of machines. Hopefully it is just me