Metacommand: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Metacommand}}
'''Metacommands''' are commands that start with '''dollar sign ($)'''. Those commands usually switch the program between different operation modes/behavior or provide extended functionality.
'''Metacommands''' are commands that start with '''dollar sign ($)'''. Those commands usually switch the program between different operation modes/behavior or provide extended functionality.


Line 6: 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]].}}
* [[$INCLUDE]] {{Text|designates a text code library file to include with the program.}}
* [[$INCLUDE]] {{Text|designates a text code library file to include with the program.}}
Line 14: 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.
----
* [[$ASSERTS]] {{Text|enables debug tests with the [[_ASSERT]] macro.}}
* [[$ASSERTS]] {{Text|enables debug tests with the [[_ASSERT]] macro.}}
* [[$CHECKING]] {{Text|turns event and error checking OFF or ON.}}
* [[$CHECKING]] {{Text|turns event and error checking OFF or ON.}}
Line 23: 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$]].}}
* [[$NOPREFIX]] {{Text|allows QB64-specific keywords to be used without the underscore prefix.}}
* [[$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|deprecated|red}}) {{Text|enables the MIDI support for [[_SNDOPEN]].}}
* [[$NOPREFIX]] ({{Text|deprecated|red}}) {{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.}}




==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.}}




==See also==
{{PageSeeAlso}}
* [[Statement]], [[Sub (explanatory)]]
* [[Statement]], [[Sub (explanatory)]]
* [[Function (explanatory)]]
* [[Function (explanatory)]]
Line 49: Line 48:




{{PageNavigation}}
{{PageReferences}}

Latest revision as of 12:18, 19 November 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 (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