Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
prog:lazarus:compilateur:directives:modesswitch [16/04/2021 10:29] thierry créée |
prog:lazarus:compilateur:directives:modesswitch [16/04/2021 10:39] (Version actuelle) thierry [$MODESSWITCH] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== $MODESSWITCH ====== | ====== $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 [[https://www.freepascal.org/docs-html/3.2.0/prog/progsu105.html#x113-1140001.3.21|{$MODE}]] peut être utilisé. | ||
+ | |||
+ | La syntaxe est la suivante : | ||
+ | <code delphi> | ||
+ | {$MODESWITCH XXX} // Active | ||
+ | {$MODESWITCH XXX+} // identique à {$MODESWITCH XXX} | ||
+ | {$MODESWITCH XXX-} // Désactive | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | <code delphi> | ||
+ | { 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; | ||
+ | |||
+ | </code> | ||
+ | == 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. | ||
+ | |||
+ | ====== Sources & Ressources ====== | ||
+ | * [[https://wiki.lazarus.freepascal.org/modeswitch]] | ||
+ | * [[https://www.freepascal.org/docs-html/3.2.0/prog/progsu106.html#x114-1150001.3.22]] | ||
+ | |||