1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-01 09:10:37 +00:00
qb64/internal/help/TIMER_(statement).txt
2021-02-18 14:11:22 -03:00

59 lines
2.7 KiB
Plaintext

A [[TIMER]] statement enables, turns off or stops timer event trapping. QBasic only uses the base timer, but '''QB64''' can run many.
{{PageSyntax}}
QB
:::TIMER {ON|STOP|OFF}
QB64
:::TIMER(''number%'') {ON|STOP|OFF|FREE}
{{PageParameters}}
* ''number'' denotes a specific numbered timer event in '''QB64 only'''. QB64 can run many timer events at once including the base timer.
* TIMER ON enables event trapping of an [[ON TIMER (n)]] statement. While enabled, a check is made after every code statement to see if the specified time has elapsed and the ON TIMER [[GOSUB]] (or [[SUB]] in QB64) procedure is executed.
* TIMER STOP disables timer event trapping. When an event occurs while stopped, it is remembered. If timer events are turned back on later, any remembered events are immediately executed.
* TIMER OFF turns timer event trapping completely off and no subsequent events are remembered.
* TIMER(n) '''FREE''' clears a specific timer event when it is no longer needed. '''The base TIMER or TIMER(0) cannot be freed!'''
{{PageDescription}}
<center>'''QB64 only'''</center>
* Get a TIMER number from [[_FREETIMER]] ONLY except when the base timer(no number or 0) is used. Use specific variables or an array to hold each event number value for later reference.
* If the TIMER number is omitted or 0, the TIMER used is the base timer.
* Specific TIMER events can be enabled, suspended, turned off or freed using [[TIMER (statement)|TIMER(n)]] ON, STOP, OFF or FREE.
<center>'''QB64 Timing Alternatives'''</center>
* The [[TIMER]] function can be used to find timed intervals down to 1 millisecond(.001) accuracy.
* The [[_DELAY]] statement can be used to delay program execution for intervals down to milliseconds.
* [[_LIMIT]] can slow down loops to a specified number of frames per second. This can also alleviate a program's CPU usage.
{{PageExamples}}
''Example:'' How to update the time while [[PRINT|printing]] at the same time in a program.
{{CodeStart}} '' ''
{{Cl|TIMER}} ON ' enable timer event trapping
{{Cl|LOCATE}} 4, 2 ' set the starting PRINT position
{{Cl|ON TIMER(n)|ON TIMER}}(10) {{Cl|GOSUB}} Clock ' set procedure execution repeat time
{{Cl|DO}} {{Cl|WHILE}} {{Cl|INKEY$}} = "": {{Cl|PRINT}} "A"; : {{Cl|SLEEP}} 6: {{Cl|LOOP}}
{{Cl|TIMER}} OFF
{{Cl|SYSTEM}}
Clock:
row = {{Cl|CSRLIN}} ' Save current print cursor row.
col = {{Cl|POS|POS(0)}} ' Save current print cursor column.
{{Cl|LOCATE}} 2, 37: {{Cl|PRINT}} {{Cl|TIME$}}; ' print current time at top of screen.
{{Cl|LOCATE}} row, col ' return to last print cursor position
{{Cl|RETURN}} '' ''
{{CodeEnd}}
: NOTE: SLEEP will be interrupted in QBasic.
{{PageSeeAlso}}
* [[ON TIMER(n)]], [[TIMER]](function)
* [[_DELAY]], [[_LIMIT]]
{{PageNavigation}}