Messages d'avertissement (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Delphi - Index


Type Commutateur
Syntaxe {$WARN identificateur ON | OFF | ERROR | DEFAULT}
Par défaut Tous les avertissements sont activés
Portée Local

La directive $WARN vous donne un contrôle affiné sur les messages d'avertissement individuels.

Les seuls avertissements pouvant être activés ou désactivés en utilisant $WARN sont ceux cités ci-dessous.

Les avertissements définis par la directive inline $WARN s'appliquent à l'unité de compilation dans laquelle la directive apparaît. Après celle-ci, l'état précédent est rétabli. Les avertissements définis par une directive $WARN prennent effet à partir du point où elle apparaît dans le fichier.

La directive $WARNINGS contrôle la génération des avertissements du compilateur.

ON, OFF, ERROR et DEFAULT

Vous pouvez utiliser la directive $WARN comme suit :

Syntaxe Effet
{$WARN identifier ON} Permet au compilateur d'afficher l'avertissement spécifié par l'identificateur.
{$WARN identifier OFF} L'avertissement spécifié n'est pas affiché.
{$WARN identifier ERROR} L'avertissement spécifié est traité comme une erreur.
{$WARN identifier DEFAULT} Utilise les paramètres par défaut de la boîte de dialogue Options de projet.

Identificateurs

L'identificateur de la directive $WARN peut prendre l'une des valeurs suivantes :

Identificateur Avertissement
SYMBOL_DEPRECATED W1000
SYMBOL_LIBRARY W1001
SYMBOL_PLATFORM W1002
SYMBOL_EXPERIMENTAL W1003
UNIT_LIBRARY W1004
UNIT_PLATFORM W1005
UNIT_DEPRECATED W1006
UNIT_EXPERIMENTAL W1007
HRESULT_COMPAT W1008
HIDING_MEMBER W1009
HIDDEN_VIRTUAL W1010
GARBAGE W1011
BOUNDS_ERROR W1012
ZERO_NIL_COMPAT W1013
STRING_CONST_TRUNCED W1014
FOR_LOOP_VAR_VARPAR W1015
TYPED_CONST_VARPAR W1016
ASG_TO_TYPED_CONST W1017
CASE_LABEL_RANGE W1018
FOR_VARIABLE W1019
CONSTRUCTING_ABSTRACT W1020
COMPARISON_FALSE W1021
COMPARISON_TRUE W1022
COMPARING_SIGNED_UNSIGNED W1023
COMBINING_SIGNED_UNSIGNED W1024
UNSUPPORTED_CONSTRUCT W1025
FILE_OPEN W1026
FILE_OPEN_UNITSRC W1027
BAD_GLOBAL_SYMBOL W1028
DUPLICATE_CTOR_DTOR W1029
INVALID_DIRECTIVE W1030
PACKAGE_NO_LINK W1031
PACKAGED_THREADVAR W1032
IMPLICIT_IMPORT W1033
HPPEMIT_IGNORED W1034
NO_RETVAL W1035
USE_BEFORE_DEF W1036
FOR_LOOP_VAR_UNDEF W1037
UNIT_NAME_MISMATCH W1038
NO_CFG_FILE_FOUND W1039
IMPLICIT_VARIANTS W1040
UNICODE_TO_LOCALE W1041
LOCALE_TO_UNICODE W1042
IMAGEBASE_MULTIPLE W1043
SUSPICIOUS_TYPECAST W1044
PRIVATE_PROPACCESSOR W1045
UNSAFE_TYPE W1046
UNSAFE_CODE W1047
UNSAFE_CAST W1048
OPTION_TRUNCATED W1049
WIDECHAR_REDUCED W1050
DUPLICATES_IGNORED W1051
MESSAGE_DIRECTIVE W1054
TYPEINFO_IMPLICITLY_ADDED W1055
RLINK_WARNING W1056
IMPLICIT_STRING_CAST W1057
IMPLICIT_STRING_CAST_LOSS W1058
EXPLICIT_STRING_CAST W1059
EXPLICIT_STRING_CAST_LOSS W1060
CVT_WCHAR_TO_ACHAR W1061
CVT_NARROWING_STRING_LOST W1062
CVT_ACHAR_TO_WCHAR W1063
CVT_WIDENING_STRING_LOST W1064
LOST_EXTENDED_PRECISION W1066
LNKDFM_NOTFOUND W1067
IMMUTABLE_STRINGS W1068
MOBILE_DELPHI W1069
UNSAFE_VOID_POINTER W1070
IMPLICIT_INTEGER_CAST_LOSS W1071
IMPLICIT_CONVERSION_LOSS W1072
COMBINING_SIGNED_UNSIGNED64 W1073
UNKNOWN_CUSTOM_ATTRIBUTE W1074
XML_WHITESPACE_NOT_ALLOWED W1201
XML_UNKNOWN_ENTITY W1202
XML_INVALID_NAME_START W1203
XML_INVALID_NAME W1204
XML_EXPECTED_CHARACTER W1205
XML_CREF_NO_RESOLVE W1206
XML_NO_PARM W1207
XML_NO_MATCHING_PARM W1208

Exemples

La directive $WARN suivante génère des avertissements sur toutes les références aux symboles experimental dans le module en cours :

{$WARNINGS ON}
{$WARN SYMBOL_EXPERIMENTAL ON}

procedure Foo; experimental;
begin
end;

begin
    Foo // Warning: W1003 Symbol 'Foo' is experimental
end.

Si cette directive $WARN a été changée en :

{$WARN SYMBOL_EXPERIMENTAL ERROR}

le message du compilateur est alors changé en :

Erreur : E1003 Le symbole 'Foo' est expérimental

et ce module ne sera pas compilé.

Autre exemple :

{$WARN WIDECHAR_REDUCED OFF}
  if c in ['a', 'b'] then
    // ...
{$WARN WIDECHAR_REDUCED DEFAULT}

Voir aussi