Article: Q45948
Product(s): See article
Version(s): 1.00 1.01 1.02 2.00 2.01 3.00 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | SR# S890613-138 B_BasicCom | mspl13_basic
Last Modified: 29-DEC-1989
The /w compiler option produces smaller EXE files, but event checking
is done much less frequently than if /v is used.
In programs without line labels or line numbers, event trapping
requires the /v (check between statements) compiler option. In
programs compiled with the /v option, events are checked before every
statement.
If your program is compiled with the /w option, events are checked
only when a labeled or numbered line is encountered at run time. As a
result, if compiled with the /w switch, your program will never trap
an event if it doesn't pass through a statement that has a label or
line number.
This information applies to all ON Event GOSUB statements [where Event
can be COM(n), KEY(n), PEN, PLAY(n), STRIG(n), or TIMER(n)] for event
trapping in Microsoft QuickBASIC Versions 1.00, 1.01, 1.02, 2.00,
2.01, 3.00, 4.00, 4.00b, and 4.50 for MS-DOS; Microsoft BASIC Compiler
Versions 6.00 and 6.00b for MS-DOS and MS OS/2; and Microsoft BASIC
PDS Version 7.00 for MS-DOS and MS OS/2. In QuickBASIC 4.00b and
later, BASIC compiler 6.00 and 6.00b, and BASIC PDS 7.00, the ON
UEVENT GOSUB and CALL SetUEvent statements were added for user-defined
event trapping.
Code Sample
-----------
The following code sample, which requires QuickBASIC 4.00b or later,
or BASIC compiler 6.00 or later, will not trap the user-defined event
if compiled with the /w option. To trap the event, either use the /v
option or place a line label in the idle loop as shown.
ON UEVENT GOSUB handle:
UEVENT ON
WHILE i$ <> CHR$(27) 'Press escape to exit
IF i$ = " " THEN 'Press space to cause UEVENT
'linelabel: 'Remove comment at start of line for /w to trap
CALL SetUEvent
END IF
i$ = INKEY$
WEND
END
handle: PRINT "ON UEVENT"
RETURN
Note that the command-line compiler has a different name in different
versions, as shown.
QuickBASIC Versions 4.x and BASIC compiler 6.00 and 6.00b and BASIC
PDS 7.00 compile with BC.EXE, as follows:
BC test/V
QuickBASIC Versions 2.x and 3.00 compile with QB.EXE, as follows:
QB test/V;
QuickBASIC Versions 1.x compile with BASCOM.EXE, as follows:
BASCOM test/V;