>Ron,
>inkey(0.1) means wait for a key for 0.1 seconds at max, not wait 0.1 secs before checking a key. You'd need a loop as you did to enforce it, however using seconds() is dangerous if this routine could be running around midnight (SECONDS() - pnseconds > pntimeout would be true about 24 hrs later).
>
Also, you can use
pnseconds = DATETIME()
IF DATETIME() - pnSeconds > pntimeout
...
or for more precise values (or in FoxPro 2.5)
pnseconds = VAL(SYS(1)) * 86400 + SECONDS()
instead of DATETIME()
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro
"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison