$MODESSWITCH
La directive de compilation {$MODESWITCH }
permet d'activer ou de désactiver les fonctionnalités du mode individuel sans modifier le mode de compilation actuel.
Ce commutateur est un commutateur global, et peut être utilisé partout où le commutateur {$MODE} peut être utilisé.
La syntaxe est la suivante :
{$MODESWITCH XXX} // Active {$MODESWITCH XXX+} // identique à {$MODESWITCH XXX} {$MODESWITCH XXX-} // Désactive
La fonction XXX peut être l'une des suivantes :
CLASSE
Utilisez les classes pascal object.
OBJPAS
Inclure automatiquement l'unité ObjPas.
RESULT
Activez l'identificateur de result
pour les résultats des fonctions.
PCHARTOSTRING
Permettre la conversion automatique des chaînes de caractères à terminaison nulle en chaînes de caractères,
CVAR
Autoriser l'utilisation du mot-clé CVAR.
NESTEDCOMMENTS
Permettre l'utilisation de commentaires imbriqués.
CLASSICPROCVARS
Utiliser les variables procédurales classiques.
MACPROCVARS
Utiliser des variables procédurales de type mac.
REPEATFORWARD
La déclaration de mise en œuvre et la déclaration de transmission doivent correspondre complètement.
POINTERTOPROCVAR
Permettre la conversion silencieuse des pointeurs en variables procédurales.
AUTODEREF
Déréférencement automatique (silencieux) des pointeurs dactylographiés.
INITFINAL
Permettre l'utilisation de l'initialisation et de la finalisation
ANSISTRINGS
Autoriser l'utilisation des ansistrings.
OUT
Permet d'utiliser le type de paramètre out.
DEFAULTPARAMETERS
Permettre l'utilisation de valeurs de paramètres par défaut.
HINTDIRECTIVE
Soutenir les directives d'indication (déprédation, plate-forme, etc.)
DUPLICATELOCALS
Permettre aux variables locales des méthodes de classe d'avoir les mêmes noms que les propriétés de la classe.
PROPERTIES
Autoriser l'utilisation des biens.
ALLOWINLINE
Autoriser les procédures en ligne.
EXCEPTIONS
Permettre le recours à des exceptions.
ADVANCEDRECORDS
permettre l'utilisation d'enregistrements avancés (c'est-à-dire des enregistrements avec des méthodes)
Exemple:
{ Exemple d'advanced Records } TQRange = packed record private FLeft: QWord; FRight: QWord; procedure SetLeft(AValue: QWord); procedure SetRight(AValue: QWord); public property Left: QWord read FLeft write SetLeft; property Right: QWord read FRight write SetRight; class operator in (const AValue: QWord;const ARange: TQRange): boolean; end;
UNICODESTRINGS
est par défaut une chaîne unicode.
TYPEHELPERS
Autoriser l'utilisation d'aides à la saisie.
CBLOCKS
Blocs de style C.
ISOIO
entrée/sortie comme requis par l'ISO pascal.
ISOPROGRAMPARAS
Paramètres de programme tels que requis par l'ISO pascal.
ISOMOD
mod comme requis par l'ISO pascal.
ISOUNARYMINUS
Unary moins comme requis par l'ISO pascal.