'''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 <code>$</code> and MUST be commented with [[apostrophe|']] or [[REM]]. * [[$INCLUDE]] is always followed by a colon and the full filename must be included in single quotes. * [[$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=== :[[$ASSERTS]][:CONSOLE] 'enables assertions :[[$CHECKING]]:{ON|OFF} 'disables QB64 C++ event and error checking (no spaces) :[[$COLOR]]:{0|32} 'adds named color constants to the program :[[$CONSOLE]][:ONLY] 'creates a QB64 console window throughout the program :[[$ERROR]] message 'triggers a compilation error, useful inside $IF blocks :[[$EXEICON]]:'iconfile.ico' 'embeds an .ICO file into the final executable (Windows only) :[[$IF]]...[[$END IF]] 'precompiler conditional directive :[[$LET]] variable = expression 'defines precompiler flags :[[$NOPREFIX]] 'allows QB64 keywords without the leading <code>_</code> :[[$RESIZE]]:{ON|OFF|STRETCH|SMOOTH} 'determines if re-sizing of the program screen by the user is allowed :[[$SCREENHIDE]] 'hides the QB64 program window throughout the program :[[$SCREENSHOW]] 'displays the main QB64 program window :[[$VERSIONINFO]]:key=value[, ...] 'embeds version info metadata into the final executable (Windows only) :[[$VIRTUALKEYBOARD]]:{ON|OFF} 'enables the virtual keyboard (Deprecated) ===Description=== * [[$INCLUDE]] can be used at the beginning or at the end of program SUB procedures. * [[$ASSERTS]] enables the [[_ASSERT]] macro. * [[$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. * [[$COLOR]] includes named color constants in a program. * [[$CONSOLE]] creates a console window which can be turned off later with [[_CONSOLE]] OFF. * [[$EXEICON]] embeds a designated icon file into the compiled EXE file. (Windows ONLY) * [[$ERROR]] MESSAGE causes a compilation error whenever QB64 attempts to compile it, displaying MESSAGE to the user. This is useful if inside a $IF block, as the error can be conditional. * [[$IF]]...[[$END IF]] allows selective inclusion of code in the final program. * [[$LET]] used to set a flag variable for the precompiler. * [[$NOPREFIX]] allows all QB64 functions and statements to be used without the leading underscore (_). * [[$RESIZE]] allows a user to resize the program window. OFF is default. * [[$SCREENHIDE]] hides the QB64 program window throughout the program until [[$SCREENSHOW]] is used. * [[$VERSIONINFO]] adds metadata to Windows only binaries for identification purposes across the OS. * [[$VIRTUALKEYBOARD]] turns the virtual keyboard ON or OFF for use in touch-enabled devices. (DEPRECATED) * '''Do not comment out with [[apostrophe|']] or [[REM]] QB64-specific metacommands.''' {{PageSeeAlso}} * [[OPTION_BASE|OPTION BASE]], [[OPTION_EXPLICIT|OPTION _EXPLICIT]], [[OPTION_EXPLICITARRAY|OPTION _EXPLICITARRAY]] * [[Statement]], [[Function (explanatory)]] * [[REM]] * [[DIM]], [[REDIM]] * [[ON TIMER(n)]] {{PageNavigation}}