Text DE Version 4.50

DEFINE,UNDEFINE,IFDEF,IFUNDEF

Beschreibung

Ab Version 4.50 B180:

Bedingte Compilierung (DEFINE,UNDEFINE,IFDEF,IFUNDEF):

DEFINE:

Syntax:
DEFINE(Test);

Mit DEFINE kann ein "Begriff" als vorhanden definiert werden.
ACHTUNG:
Ein "Begriff" darf keine Spaces (" ") oder Sonderzeichen (außer Unterstrich ("_")) enthalten.
Ein solcher "Begriff" kann mit IFDEF oder IFUNDEF zur bedingten Compilierung genutzt werden.

Beispiel:

DEFINE(Test);

Der "Begriff" Test wird als vorhanden definiert.

UNDEFINE:

Syntax:
UNDEFINE(Test);

Mit UNDEFINE kann ein "Begriff" als nicht vorhanden definiert werden.
ACHTUNG:
Ein "Begriff" darf keine Spaces (" ") oder Sonderzeichen (außer Unterstrich ("_")) enthalten.
Ein solcher "Begriff" kann mit IFDEF oder IFUNDEF zur bedingten Compilierung genutzt werden.

Beispiel:

UNDEFINE(Test);

Der "Begriff" Test wird als nicht vorhanden definiert.

IFDEF:

Syntax:
IFDEF(Test)
{

}
ELSE
{

}

oder

IFDEF(Test)
{

}

Mit IFDEF kann abhängig von der Existenz (DEFINE) eines "Begriff" der nachfolgende Block von Instruktionen compiliert werden, wenn der "Begriff" nicht definiert wurde, wird der nachfolgende Block von Instruktionen nicht compiliert.
Wird zu IFDEF ein ELSE verwandt wird (wenn der "Begriff" nicht definiert wurde) der nach dem ELSE folgende Block von Instruktionen compiliert.

Beispiel 1:

DEFINE(Test);
IFDEF(Test)
{
   @LogReport("Diese Zeile wird compiliert");
}
ELSE
{
   @LogReport("Diese Zeile wird nicht compiliert");
}

Der "Begriff" Test wird als vorhanden definiert, der IFDEF folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird compiliert");
}
wird compiliert.
Es wird der ELSE folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
wird nicht compiliert.

Beispiel 2:

UNDEFINE(Test);
IFDEF(Test)
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
ELSE
{
   @LogReport("Diese Zeile wird compiliert");
}

Der "Begriff" Test wird als nicht vorhanden definiert, der IFDEF folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
wird nicht compiliert.
Es wird der ELSE folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird compiliert");
}
wird compiliert.

IFUNDEF:

Syntax:
IFUNDEF(Test)
{

}
ELSE
{

}

oder

IFUNDEF(Test)
{

}

Mit IFUNDEF kann abhängig von der nicht Existenz (UNDEFINE) eines "Begriff" der nachfolgende Block von Instruktionen compiliert werden, wenn der "Begriff" definiert wurde, wird der nachfolgende Block von Instruktionen nicht compiliert.
Wird zu IFUNDEF ein ELSE verwandt wird (wenn der "Begriff" definiert wurde) der nach dem ELSE folgende Block von Instruktionen compiliert.

Beispiel 1:

DEFINE(Test);
IFUNDEF(Test)
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
ELSE
{
   @LogReport("Diese Zeile wird compiliert");
}

Der "Begriff" Test wird als vorhanden definiert, der IFUNDEF folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
wird nicht compiliert.
Es wird der ELSE folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird compiliert");
}
wird compiliert.

Beispiel 2:

UNDEFINE(Test);
IFUNDEF(Test)
{
   @LogReport("Diese Zeile wird compiliert");
}
ELSE
{
   @LogReport("Diese Zeile wird nicht compiliert");
}

Der "Begriff" Test wird als nicht vorhanden definiert, der IFDEF folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird compiliert");
}
wird compiliert.
Es wird der ELSE folgende Block von Instruktionen
{
   @LogReport("Diese Zeile wird nicht compiliert");
}
wird nicht compiliert.

HINWEISE:

IFDEF und IFUNDEF (mit oder ohne ELSE) können verschachtelt werden.
Bei IFDEF und IFUNDEF können die "Begriffe" die zur bedingten Compilierung genutzt werden nicht mit Operatoren verknüpft werden.

Folgendes ist also z.B. nicht möglich:

IFUNDEF(Test & Test2)
{
   @LogReport("Bal Bla Bla");
}