Messages d'avertissement (Delphi)
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}