Warnmeldungen (Delphi)
Nach oben zu Liste der Delphi-Compiler-Direktiven - Index
Typ | Option |
---|---|
Syntax | {$WARN identifier ON | OFF | ERROR | DEFAULT}
|
Vorgabe | Alle Warnungen sind aktiviert |
Bereich | Lokal |
Die Direktive $WARN
ermöglicht eine feinstufige Steuerung einzelner Warnmeldungen.
Mit $WARN
können nur die unten aufgeführten Warnungen aktiviert oder deaktiviert werden.
Die mit dem Inline-$WARN
aktivierten Warnungen betreffen nur die Unit, in der die Direktive enthalten ist. Die Warnungen werden erst ab der Quelltextzeile ausgegeben, die $WARN
enthält.
Die Direktive $WARNINGS steuert auch das Erzeugen von Compiler-Warnungen.
Inhaltsverzeichnis
ON, OFF, ERROR und DEFAULT
Sie können die Direktive $WARN
wie folgt verwenden:
Syntax | Effekt |
---|---|
{$WARN identifier ON}
|
Ermöglicht, dass der Compiler die durch den Bezeichner angegebene Warnung anzeigt. |
{$WARN identifier OFF}
|
Die angegebene Warnung wird nicht angezeigt. |
{$WARN identifier ERROR}
|
Die angegebene Warnung wird als Fehler behandelt. |
{$WARN identifier DEFAULT}
|
Verwendet die Standardeinstellungen aus dem Dialogfeld Projektoptionen. |
Bezeichner
Der Bezeichner in der Direktive $WARN
kann einen der folgenden Werte annehmen:
Bezeichner | Warnung |
---|---|
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 |
Beispiele
Die Folgende $WARN-Direktive führt zu Warnungen über alle Referenzen auf experimentelle Symbole im aktuellen Modul:
{$WARNINGS ON}
{$WARN SYMBOL_EXPERIMENTAL ON}
procedure Foo; experimental;
begin
end;
begin
Foo // Warning: W1003 Symbol 'Foo' is experimental
end.
Wenn diese $WARN-Direktive folgendermaßen geändert wird:
{$WARN SYMBOL_EXPERIMENTAL ERROR}
würde folgende Compiler-Meldung ausgegeben:
- Error: E1003 Symbol 'Foo' is experimental
und dieses Modul würde nicht compiliert werden.
Ein weiteres Beispiel:
{$WARN WIDECHAR_REDUCED OFF}
if c in ['a', 'b'] then
// ...
{$WARN WIDECHAR_REDUCED DEFAULT}