Revision [16307]
This is an old revision of KeyPgSleep made by CountingPine on 2012-08-18 18:53:59.
SLEEP
Waits until a specified time has elapsed, or a key is pressed.
Syntax:
KeyPgDeclare declare KeyPgSub sub Sleep KeyPgOverload overload ( KeyPgByval byval amount KeyPgAs as KeyPgInteger integer = -1 )
KeyPgDeclare declare KeyPgFunction function Sleep ( KeyPgByval byval amount KeyPgAs as KeyPgInteger integer , KeyPgByval byval keyflag KeyPgAs as KeyPgInteger integer ) KeyPgAs as KeyPgInteger integer
KeyPgDeclare declare KeyPgFunction function Sleep ( KeyPgByval byval amount KeyPgAs as KeyPgInteger integer , KeyPgByval byval keyflag KeyPgAs as KeyPgInteger integer ) KeyPgAs as KeyPgInteger integer
Usage:
Sleep [ amount [, keyflag ]]
result = Sleep ( amount, keyflag )
result = Sleep ( amount, keyflag )
Parameters:
amount
Optional number of milliseconds to wait (default is to wait for a key press).
keyflag
Optional flag; give it a value of 0 for a normal sleep, or 1 to specify that the wait cannot be interrupted by a key press.
Return Value:
Returns 1 if keyflag was not a valid value (i.e. something other than 0 or 1) to indicate failure, or 0 otherwise.
Description:
Sleep will wait until amount milliseconds (can be seconds in CompilerOptlang -lang qb, see below) given elapsed (if any value was passed) or until the user presses a key. If amount is below 100 ms then Sleep will always wait the full requested amount (key presses are ignored).
Include the second parameter, 1, for a "deep" sleep, which cannot be interrupted by pressing a key.
The accuracy of Sleep is variable depending on the OS cycle time (Windows NT/2K/XP: 15 ms, 9x/Me: 50 ms, Linux 10ms, DOS 55 ms).
Call Sleep with 25ms or less to release time-slice when waiting for user input or looping inside a thread. This will prevent the program from unnecessarily hogging the CPU.
Sleep does not clear the keyboard buffer and any keys pressed during a call to Sleep are retained and can be read using KeyPgInkey Inkey. In order to wait for a key press, and remove the key from the buffer, KeyPgGetkey Getkey can be used instead.
Examples:
Print "press a key"
Sleep
GetKey 'clear the keyboard buffer
Print "waiting half second"
Sleep 500
Sleep
GetKey 'clear the keyboard buffer
Print "waiting half second"
Sleep 500
Dialect Differences:
- In the CompilerOptlang -lang fb and CompilerOptlang -lang fblite dialects, the amount value is in milliseconds.
- In the CompilerOptlang -lang qb dialect, the amount value is in seconds as in QB. If the second parameter keyflag is given, or the keyword is written as __Sleep the value is expected to be in milliseconds.
Differences from QB:
- None in the CompilerOptlang -lang qb dialect.
- In QB, the delay was given in whole seconds only and did not support the keyflag parameter.
See also:
Back to Miscellaneous