Metacommand

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search

Metacommands are commands that start with dollar sign ($). Those commands usually switch the program between different operation modes/behavior or provide extended functionality.


Legacy Metacommands (QBasic/QuickBASIC)

  • Legacy metacommands are normally used at the program start, they should have their own program line and must be commented with an ' or REM.
  • $DYNAMIC set all program arrays as changeable in size using REDIM.
  • $INCLUDE designates a text code library file to include with the program.
  • $STATIC set all program arrays as unchangeable in size using DIM.


QB64 Metacommands

  • QB64 metacommands must not necessarily used at the program start. However, it's still the best location for some of it (see individual descriptions).
  • QB64 metacommands must not be commented with an ' or REM, but should have their own program line too.
  • $ASSERTS enables debug tests with the _ASSERT macro.
  • $CHECKING turns event and error checking OFF or ON.
  • $COLOR includes named color name constants in a program.
  • $CONSOLE creates a console window that can be used throughout a program.
  • $DEBUG enables debugging features, allowing you to step through your code line by line.
  • $EMBED is used to embed any file's contents into the compiled executable. Recall the embedded file contents using _EMBEDDED$.
  • $EXEICON is used with an .ICO icon file name to embed the image into the compiled executable.
  • $INCLUDEONCE prevents that include file contents is injected multiple times into a program.
  • $MIDISOUNDFONT (deprecated) enables the MIDI support for _SNDOPEN.
  • $NOPREFIX (deprecated) allows QB64-specific keywords to be used without the underscore prefix.
  • $RESIZE used with ON allows a user to resize the program window where OFF does not.
  • $SCREENHIDE hides the program window from view.
  • $SCREENSHOW displays the program window after it was hidden.
  • $UNSTABLE will enable the use of features that have not yet been made a permanent part of the language.
  • $VERSIONINFO adds metadata to Windows only binaries for identification purposes across the OS.


QB64 Precompiler Commands

  • These are a special type of QB64 Metacommands, which allow for conditional compiling, hence including or excluding certain code sections depending on given conditions.
  • $ELSE used in conjunction with $IF for the precompiler.
  • $ELSEIF used in conjunction with $IF for the precompiler.
  • $END IF used in conjunction with $IF for the precompiler.
  • $ERROR used to trigger compiler errors from within the precompiling pass.
  • $IF used to set an IF condition for the precompiler.
  • $LET used to set a variable for the precompiler.


See also


QB64 Programming References

Wiki Pages
Main Page with Articles and Tutorials
QB64 specific keywords (alphabetical)
Original QBasic keywords (alphabetical)
QB64 OpenGL keywords (alphabetical)
Keywords by Usage
Got a question about something?
Frequently Asked Questions about QB64
QB64 Phoenix Edition Community Forum
Links to other QBasic Sites:
Pete's QBasic Forum
Pete's QBasic Downloads