Yes, this is how it works. You can enhance it by using timeBeginPeriod(1); time:= timeGetTime; timeEndPeriod(1); to around 1ms range.

But it's better to use QueryPerformanceFrequency / QueryPerformanceCounter functions.