Difference between revisions of "Metacommand"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>SMcNeill
(adds $IF..$END IF)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Qbasic '''Metacommands''' are program wide commands that start with $. QBasic requires them to be commented out.
+
'''Metacommands''' are program wide commands that start with $.
  
  
 +
==Legacy metacommands (Qbasic/QuickBASIC)==
 +
===Syntax===
 +
:REM [[$INCLUDE]]: '[[QB.BI]]' 'loads a reference file or library
  
QB {{PageSyntax}}
+
:REM [[$DYNAMIC]] 'enables resizing of array dimensions with REDIM
  
::REM [[$INCLUDE]]: '[[QB.BI]]' 'loads a reference file or library
+
:REM [[$STATIC]] 'arrays cannot be resized once dimensioned
  
::REM [[$DYNAMIC]] 'enables resizing of array dimensions with REDIM
+
===Description===
 +
* Qbasic Metacommands are normally used at the program start and are in effect throughout the program.
 +
* Qbasic Metacommands are always prefixed with $ and MUST be commented with an apostrophe or [[REM]].
 +
* [[$INCLUDE]] is always followed by a colon and the full text code file name is commented on both sides.
 +
* [[$DYNAMIC]] allows larger arrays that are changeable in size at runtime.
 +
* [[$STATIC]] makes all arrays unchangeable in size.
 +
* '''Qbasic metacommands should have their own program line because they are commented.'''
  
::REM [[$STATIC]] 'arrays cannot be resized once dimensioned
 
  
 +
==QB64 metacommands==
 +
===Syntax===
 +
:[[$CHECKING]]{OFF|ON} 'disables QB64 C++ event and error checking (no spaces)
  
QB64 {{PageSyntax}}
+
:[[$CONSOLE]] 'creates a QB64 console window throughout the program
::[[$CHECKING]]{OFF|ON} 'disables QB64 C++ event and error checking (no spaces)
 
  
::[[$CONSOLE]] 'creates a QB64 console window throughout the program
+
:[[$RESIZE]]:{ON|OFF} 'determines if re-sizing of the program screen by the user is allowed(no spaces)
  
::[[$RESIZE]]:{ON|OFF} 'permits user re-sizing of the program screen when not in [[_FULLSCREEN]] mode(no spaces).
+
:[[$SCREENHIDE]] 'hides the QB64 program window throughout the program
  
::[[$SCREENHIDE]] 'hides the QB64 program window throughout the program
+
:[[$SCREENSHOW]] 'displays the main QB64 program window
  
::[[$SCREENSHOW]] 'displays the main QB64 program window
+
:[[$EXEICON]]:'iconfile.ico' 'embeds an .ICO file into the final executable (Windows only)
  
 +
:[[$VERSIONINFO]]:key=value 'embeds version info metadata into the final executable (Windows only)
  
<center>'''Qbasic Metacommands'''</center>
+
:[[$IF]]...[[$END IF]] 'precompiler directive
* Qbasic Metacommands are normally used at the program start and are in effect throughout the program.
 
* Qbasic Metacommands are always prefixed with $ and MUST be commented with an apostrophe or [[REM]].
 
* [[$INCLUDE]] is always followed by a colon and the full text code file name is commented on both sides.
 
* [[$DYNAMIC]] allows larger arrays that are changeable in size. Use [[REDIM]] for changeable sizes! [[_PRESERVE]] preserves contents.
 
* [[$STATIC]] makes all arrays unchangeable in size. Use [[DIM]] only! [[ERASE]] and [[CLEAR]] do not affect the array size.
 
* '''Qbasic Metacommands should have their own program line because they are commented.'''
 
  
  
<center>'''QB64 Metacommands'''</center>
+
===Description===
* [[$INCLUDE]] can be used at the beginning or at the end of program SUB procedures. Referencing elsewhere creates an [[ERROR Codes|error]]!
+
* [[$INCLUDE]] can be used at the beginning or at the end of program SUB procedures.
* '''Do NOT comment the QB64 specific Metacommands listed below!:'''
+
* [[$CHECKING]]:OFF should only be used with '''errorless''' code where every CPU cycle counts! Use '''ON''' to re-enable event checking. Event checking can be turned OFF or ON throughout a program.
* [[$CHECKING]]: OFF should only be used with '''errorless''' code where every CPU cycle counts! Use '''ON''' to re-enable event checking. Event checking can be turned OFF or ON throughout a program. Command uses no spacing!
+
* [[$CONSOLE]] creates a console window which can be turned off later with [[_CONSOLE]] OFF.
* [[$CONSOLE]] creates a console window which can be turned off with [[CONSOLE]] OFF. [[CONSOLE]] ON can only be used after OFF!
+
* [[$RESIZE]]:ON allows a user to resize the program window. OFF is default.
 
* [[$SCREENHIDE]] hides the QB64 program window throughout the program until [[$SCREENSHOW]] is used.
 
* [[$SCREENHIDE]] hides the QB64 program window throughout the program until [[$SCREENSHOW]] is used.
* '''Do NOT comment or [[REM]] QB64 specific Metacommands and do not place comments after them!'''
+
* [[$IF]]...[[$END IF]] allows selective inclusion of code in the final program.
 
+
* '''Do not comment out with ' or [[REM]] QB64-specific metacommands.'''
 
 
  
  
 
{{PageSeeAlso}}
 
{{PageSeeAlso}}
 
 
* [[Statement]], [[Function (explanatory)]]
 
* [[Statement]], [[Function (explanatory)]]
 
* [[REM]]
 
* [[REM]]

Latest revision as of 19:42, 5 September 2017

Metacommands are program wide commands that start with $.


Legacy metacommands (Qbasic/QuickBASIC)

Syntax

REM $INCLUDE: 'QB.BI' 'loads a reference file or library
REM $DYNAMIC 'enables resizing of array dimensions with REDIM
REM $STATIC 'arrays cannot be resized once dimensioned

Description

  • Qbasic Metacommands are normally used at the program start and are in effect throughout the program.
  • Qbasic Metacommands are always prefixed with $ and MUST be commented with an apostrophe or REM.
  • $INCLUDE is always followed by a colon and the full text code file name is commented on both sides.
  • $DYNAMIC allows larger arrays that are changeable in size at runtime.
  • $STATIC makes all arrays unchangeable in size.
  • Qbasic metacommands should have their own program line because they are commented.


QB64 metacommands

Syntax

$CHECKING{OFF|ON} 'disables QB64 C++ event and error checking (no spaces)
$CONSOLE 'creates a QB64 console window throughout the program
$RESIZE:{ON|OFF} 'determines if re-sizing of the program screen by the user is allowed(no spaces)
$SCREENHIDE 'hides the QB64 program window throughout the program
$SCREENSHOW 'displays the main QB64 program window
$EXEICON:'iconfile.ico' 'embeds an .ICO file into the final executable (Windows only)
$VERSIONINFO:key=value 'embeds version info metadata into the final executable (Windows only)
$IF...$END IF 'precompiler directive


Description

  • $INCLUDE can be used at the beginning or at the end of program SUB procedures.
  • $CHECKING:OFF should only be used with errorless code where every CPU cycle counts! Use ON to re-enable event checking. Event checking can be turned OFF or ON throughout a program.
  • $CONSOLE creates a console window which can be turned off later with _CONSOLE OFF.
  • $RESIZE:ON allows a user to resize the program window. OFF is default.
  • $SCREENHIDE hides the QB64 program window throughout the program until $SCREENSHOW is used.
  • $IF...$END IF allows selective inclusion of code in the final program.
  • Do not comment out with ' or REM QB64-specific metacommands.


See also




Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page