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]] | ||
| + | |||