Metacommand: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 5: Line 5:
|  __TOC__
|  __TOC__
|}
|}
==Legacy Metacommands (QBasic/QuickBASIC)==
== 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 ''[[Apostrophe|']]'' or [[REM]].
:*Legacy metacommands are normally used at the program start, they should have their own program line and must be commented with an ''[[Apostrophe|']]'' or [[REM]].
* [[$DYNAMIC]] {{Text|set all program arrays as changeable in size using [[REDIM]].}}
* [[$DYNAMIC]] {{Text|set all program arrays as changeable in size using [[REDIM]].}}
Line 12: Line 12:




==QB64 Metacommands==
== 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 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 ''[[Apostrophe|']]'' or [[REM]], but should have their own program line too.
:*QB64 metacommands must not be commented with an ''[[Apostrophe|']]'' or [[REM]], but should have their own program line too.
Line 20: Line 20:
* [[$CONSOLE]] {{Text|creates a console window that can be used throughout a program.}}
* [[$CONSOLE]] {{Text|creates a console window that can be used throughout a program.}}
* [[$DEBUG]] {{Text|enables debugging features, allowing you to step through your code line by line.}}
* [[$DEBUG]] {{Text|enables debugging features, allowing you to step through your code line by line.}}
* [[$EXEICON]] {{Text|used with a .ICO icon file name to embed the image into the QB64 executable.}}
* [[$EMBED]] {{Text|is used to embed any file's contents into the compiled executable. Recall the embedded file contents using [[_EMBEDDED$]].}}
* [[$EXEICON]] {{Text|is used with an .ICO icon file name to embed the image into the compiled executable.}}
* [[$INCLUDEONCE]] {{Text|prevents that include file contents is injected multiple times into a program.}}
* [[$MIDISOUNDFONT]] {{Text|enables the MIDI support for [[_SNDOPEN]].}}
* [[$NOPREFIX]] {{Text|allows QB64-specific keywords to be used without the underscore prefix.}}
* [[$NOPREFIX]] {{Text|allows QB64-specific keywords to be used without the underscore prefix.}}
* [[$RESIZE]] {{Text|used with ON allows a user to resize the program window where OFF does not.}}
* [[$RESIZE]] {{Text|used with ON allows a user to resize the program window where OFF does not.}}
* [[$SCREENHIDE]] {{Text|hides the program window from view.}}
* [[$SCREENHIDE]] {{Text|hides the program window from view.}}
* [[$SCREENSHOW]] {{Text|displays the program window after it was hidden.}}
* [[$SCREENSHOW]] {{Text|displays the program window after it was hidden.}}
* [[$UNSTABLE]] {{Text|will enable the use of features that have not yet been made a permanent part of the language.}}
* [[$VERSIONINFO]] {{Text|adds metadata to Windows only binaries for identification purposes across the OS.}}
* [[$VERSIONINFO]] {{Text|adds metadata to Windows only binaries for identification purposes across the OS.}}
* [[$VIRTUALKEYBOARD]] ({{Text|deprecated|red}}) {{text|turned the virtual keyboard ON or OFF for use in touch-enabled devices.}}
* [[$VIRTUALKEYBOARD]] ({{Text|deprecated|red}}) {{Text|turned the virtual keyboard ON or OFF for use in touch-enabled devices.}}




==OB64 Precompiler Commands==
== QB64 Precompiler Commands ==
:*These are a special type of ''{{Text|QB64 Metacommands|blue}}'', which allow for conditional compiling, hence including or excluding certain code sections depending on given conditions.
:*These are a special type of ''{{Text|QB64 Metacommands|blue}}'', which allow for conditional compiling, hence including or excluding certain code sections depending on given conditions.
* [[$ELSE]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$ELSE]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$ELSEIF]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$ELSEIF]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$END IF]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$END IF]] {{Text|used in conjunction with [[$IF]] for the precompiler.}}
* [[$ERROR]]) {{Text|used to trigger compiler errors from within the precompiling pass.}}
* [[$ERROR]] {{Text|used to trigger compiler errors from within the precompiling pass.}}
* [[$IF]] {{Text|used to set an [[IF]] condition for the precompiler.}}
* [[$IF]] {{Text|used to set an [[IF]] condition for the precompiler.}}
* [[$LET]] {{Text|used to set a variable for the precompiler.}}
* [[$LET]] {{Text|used to set a variable for the precompiler.}}

Latest revision as of 17:25, 8 February 2024

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 enables the MIDI support for _SNDOPEN.
  • $NOPREFIX 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.
  • $VIRTUALKEYBOARD (deprecated) turned the virtual keyboard ON or OFF for use in touch-enabled devices.


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



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage