SmartPascal
$IfNDef
Compiler Directive
Executes code if a conditional symbol has not been defined
  {$IfNDef Symbol}
  ... Code to run when the symbol is defined ...
  {$Else}
  ... Code to run when the symbol is not defined ...
  {$EndIf}
Description
The $IfNDef compiler directive starts a section of conditionally compiled code. Only if the specified Symbol has not been defined.
 
Symbols come in two types. Predefined in Delphi, such as Console when running a console application. And defined by the $Define compiler direcctive.
 
$IfDef is very useful when developing code, allowing various sections to be compiled when testing.
Related commands
$Define Defines a compiler directive symbol - as used by IfDef
$Else Starts the alternate section of an IfDef or IfNDef
$EndIf Terminates conditional code compilation
$IfDef Executes code if a conditional symbol has been defined
$IfOpt Tests for the state of a Compiler directive
$UnDef Undefines a compiler directive symbol - as used by IfDef
 
Example code : Setting up and using a user defined symbol
begin
  // Set our code into dangerous mode
  {$Define DANGERMODE}

  // Are we out of danger?
  {$IfNDef DANGERMODE}
  ShowMessage('We are out danger at present');
  {$Else}
  ShowMessage('We are in danger mode!');
  {$EndIf}

  // Switch off danger mode
  {$UnDef DANGERMODE}
end;
Show full unit code
   We are in danger mode!