$IF

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Deutsch (de) English (en) français (fr) русский (ru)

The {$if …} directive can be used in conditional compilation.

// pointermath directive did not exist prior FPC 3.0.0
{$if FPC_VERSION > 2}
	// pointer arithmetics is bad. very bad
	{$pointermath off}
{$endif}

Also, enable you to write complex conditions that you cannot do with the {$ifdef …},

And there are two bool functions[defined/undefined] that can be mixedup with [and/or] logic operators, For example:

//Befor you need write these conditions to check some conditions:
{$define SOMETHING}
{$define SOMETHINGELSE}
{$ifdef SOMETHING}//Union $IfDef to check multiple conditions
	{$ifdef SOMETHINGELSE}
   {$ModeSwitch advancedrecords}
  {$endif}
{$endif}

//But with the {$IF} you can check conditions together:
{$if defined(SOMETHING) and defined(SOMETHINGELSE)}//simple and readabl instead of union {$IFDef}`s
  {$ModeSwitch advancedrecords}
{$endif} 

{$if defined(somthing) or defined(somethingelse)}
  //Whatever you need!
{$endif}

{$if undefined(what) and defined(somethingelse)}
  //Just for note, Another usage!
{$endif}
Directives, definitions and conditionals definitions
global compiler directives • local compiler directives

Conditional Compiler Options • Conditional compilation • Macros and Conditionals • Platform defines
$IF