| 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 |  
// Full Unit code. // ----------------------------------------------------------- // You must store this code in a unit called Unit1 with a form // called Form1 that has an OnCreate event called FormCreate.   unit Unit1;   interface   uses   Forms, Dialogs;   type   TForm1 = class(TForm)     procedure FormCreate(Sender: TObject);   end;   var   Form1: TForm1;   implementation {$R *.dfm}  // Include form definitions   procedure TForm1.FormCreate(Sender: TObject);  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;   end.
 |  
 
| Hide full unit code | 
 
   We are in danger mode! 
 
 |  
 
 |