• Delphi Waring 的信息


    Display Preferences
    Warning messages (Delphi)
    Go Up to Delphi Compiler Directives (List) Index

    Type
    Switch
    Syntax
    {$WARN identifier ON | OFF | ERROR | DEFAULT}
    Default
    All warnings are enabled
    Scope
    Local

    Remarks
    The $WARN directive gives you fine-grained control over individual warning messages.
    Syntax  Effect
    {$WARN identifier ON}  Allows the compiler to display the warning specified by the identifier
    {$WARN identifier OFF}  The specified warning is not displayed
    {$WARN identifier ERROR}  The specified warning is treated as error
    {$WARN identifier DEFAULT}  Uses the default settings from the Project Options dialog box.
    These warnings relate to symbols or units that use the hint directives, platform, deprecated, and library.
    The identifier in the $WARN directive can have any of the following values:
    BOUNDS_ERROR: Turns on or off warnings produced if a conversion is made that is no longer legal, owing to the lack of large unsigned types in Delphi versions prior to Delphi 4.
    (See W1012 Constant expression violates subrange bounds.)
    GARBAGE: Turns on or off warnings produced when the presence of non-whitespace text is detected past the end of the final 'end.' in the program, unit, library or package
    (See W1011 Text after final 'END.' - ignored by compiler (Delphi).)
    HIDDEN_VIRTUAL: Turns on or off warnings produced when a descendant declares a method of the same name as a method in an ancestor, and the ancestor method is virtual, but the descendant's method is not an override.
    (See W1010 Method '%s' hides virtual method of base type '%s' (Delphi).)
    HIDING_MEMBER: Turns on or off warnings produced when a descendant declares a new property of the same name as a property in an ancestor.
    (See W1009 Redeclaration of '%s' hides a member in the base class (Delphi).)
    HRESULT_COMPAT: Turns on or off warnings about using the type 'Integer' where 'HRESULT' is correct.
    (See W1008 Integer and HRESULT interchanged.)
    STRING_CONST_TRUNCED: Turns on or off all warnings about instances in which the compiler assigns a string literal or a constant value to a short string location that cannot hold the entire string.
    (See W1014 String constant truncated to fit STRING%ld (Delphi).)
    SYMBOL_DEPRECATED: Turns on or off all warnings about the deprecated directive on symbols in the current unit.
    (See W1000 Symbol '%s' is deprecated (Delphi).)
    SYMBOL_EXPERIMENTAL: Turns on or off all warnings about the experimental directive on symbols in the current unit.
    (See W1003 Symbol '%s' is experimental (Delphi).)
    SYMBOL_PLATFORM: Turns on or off all warnings about the platform directive on symbols in the current unit. (
    See W1002 Symbol '%s' is specific to a platform (Delphi).)
    SYMBOL_LIBRARY: Turns on or off all warnings about the library directive on symbols in the current unit.
    (See W1001 Symbol '%s' is specific to a library (Delphi).)
    UNIT_DEPRECATED: Turns on or off all warnings about the deprecated directive applied to a unit declaration.
    (See W1006 Unit '%s' is deprecated (Delphi).)
    UNIT_EXPERIMENTAL: Turns on or off all warnings about the experimental directive applied to a unit declaration.
    (See W1007 Unit '%s' is experimental (Delphi).)
    UNIT_LIBRARY: Turns on or off all warnings about the library directive in units where the library directive is specified.
    (See W1004 Unit '%s' is specific to a library (Delphi).)
    UNIT_PLATFORM: Turns on or off all warnings about the platform directive in units where the platform directive is specified.
    (See W1005 Unit '%s' is specific to a platform (Delphi).)
    ZERO_NIL_COMPAT: Turns on or off all warnings about instances in which the compiler converts 0 to a pointer with the value nil.
    (See W1013 Constant 0 converted to NIL (Delphi).)

    The only warnings that can be turned on/off using $WARN are the ones listed above.
    The warnings set by the inline $WARN directive are carried for the compilation unit in which the directive appears, after which it reverts to the previous state. The warnings set by a $WARN directive take effect from that point on in the file.
    The $WARNINGS directive also controls the generation of compiler warnings.

    Examples
    The following $WARN directive results in warnings about all references to experimental symbols in the current module:
    {$WARNINGS ON}
    {$WARN SYMBOL_EXPERIMENTAL ON}
     
    procedure Foo; experimental;
    begin
    end;
     
    begin
     Foo // Warning: W1003 Symbol 'Foo' is experimental
    end.
    If that $WARN directive were changed to:
    {$WARN SYMBOL_EXPERIMENTAL ERROR}
    then the compiler message would change to:
     Error: E1003 Symbol 'Foo' is experimental
    and this module would not be compiled.

    Another example:
     
    {$WARN WIDECHAR_REDUCED OFF}
      if c in ['a', 'b'] then
        // ...
    {$WARN WIDECHAR_REDUCED DEFAULT}
    Possible warnings:
    • ID_DEPRECATED,   //"x1000 Symbol '%s' is deprecated%s"
    • ID_LIBRARY,    //"x1001 Symbol '%s' is specific to a library"
    • ID_PLATFORM,    //"x1002 Symbol '%s' is specific to a platform"
    • ID_EXPERIMENTAL,   //"x1003 Symbol '%s' is experimental"
    • UNIT_LIBRARY,    //"x1004 Unit '%s' is specific to a library"
    • UNIT_PLATFORM,   //"x1005 Unit '%s' is specific to a platform"
    • UNIT_DEPRECATED,   //"x1006 Unit '%s' is deprecated"
    • UNIT_EXPERIMENTAL,   //"x1007 Unit '%s' is experimental"
    • HRESULT_COMPAT,   //"x1008 Integer and HRESULT interchanged"
    • HIDING_MEMBER,   //"x1009 Redeclaration of '%s' hides a member in the base class"
    • HIDDEN_VIRTUAL,   //"x1010 Method '%s' hides virtual method of base type '%s'"
    • GARBAGE,    //"x1011 Text after final 'END.' - ignored by compiler"
    • BOUNDS_ERROR,    //"x1012 Constant expression violates subrange bounds"
    • ZERO_NIL_COMPAT,   //"x1013 Constant 0 converted to NIL"
    • STRING_CONST_TRUNCED,   //"x1014 String constant truncated to fit STRING[%ld]"
    • FOR_LOOP_VAR_VARPAR,   //"x1015 FOR-Loop variable '%s' cannot be passed as var parameter"
    • TYPED_CONST_VARPAR,   //"x1016 Typed constant '%s' passed as var parameter"
    • ASG_TO_TYPED_CONST,   //"x1017 Assignment to typed constant '%s'"
    • CASE_LABEL_RANGE,   //"x1018 Case label outside of range of case expression"
    • FOR_VARIABLE,    //"x1019 For loop control variable must be simple local variable"
    • CONSTRUCTING_ABSTRACT,  //"x1020 Constructing instance of '%s' containing abstract method '%s.%s'"
    • COMPARISON_FALSE,   //"x1021 Comparison always evaluates to False"
    • COMPARISON_TRUE,   //"x1022 Comparison always evaluates to True"
    • COMPARING_SIGNED_UNSIGNED,  //"x1023 Comparing signed and unsigned types - widened both operands"
    • COMBINING_SIGNED_UNSIGNED,  //"x1024 Combining signed and unsigned types - widened both operands"
    • UNSUPPORTED_CONSTRUCT,  //"x1025 Unsupported language feature: '%s'"
    • FILE_OPEN,    //"x1026 File not found: '%s'"
    • FILE_OPEN_UNITSRC,   //"F1027 Unit not found: '%s' or binary equivalents (%s)"
    • BAD_GLOBAL_SYMBOL,   //"x1028 Bad global symbol definition: '%s' in object file '%s'"
    • DUPLICATE_CTOR_DTOR,   //"x1029 Duplicate %s '%s' with identical parameters will be inacessible from C++"
    • INVALID_DIRECTIVE,   //"x1030 Invalid compiler directive: '%s'"
    • PACKAGE_NO_LINK,   //"x1031 Package '%s' will not be written to disk because -J option is enabled"
    • PACKAGED_THREADVAR,   //"x1032 Exported package threadvar '%s.%s' cannot be used outside of this package"
    • IMPLICIT_IMPORT,   //"x1033 Unit '%s' implicitly imported into package '%s'"
    • HPPEMIT_IGNORED,   //"x1034 $HPPEMIT '%s' ignored"
    • NO_RETVAL,    //"x1035 Return value of function '%s' might be undefined"
    • USE_BEFORE_DEF,   //"x1036 Variable '%s' might not have been initialized"
    • FOR_LOOP_VAR_UNDEF,   //"x1037 FOR-Loop variable '%s' may be undefined after loop"
    • UNIT_NAME_MISMATCH,   //"E1038 Unit identifier '%s' does not match file name"
    • NO_CFG_FILE_FOUND,   //"x1039 No configuration files found"
    • IMPLICIT_VARIANTS,   //"x1040 Implicit use of Variants unit"
    • UNICODE_TO_LOCALE,   //"x1041 Error converting Unicode char to locale charset. String truncated. Is your LANG environment variable set correctly?"
    • LOCALE_TO_UNICODE,   //"x1042 Error converting locale string '%s' to Unicode. String truncated. Is your LANG environment variable set correctly?"
    • IMAGEBASE_MULTIPLE,   //"x1043 Imagebase $%X is not a multiple of 64k.  Rounding down to $%X"
    • SUSPICIOUS_TYPECAST,   //"x1044 Suspicious typecast of %s to %s"
    • PRIVATE_PROPACCESSOR,   //"x1045 Property declaration references ancestor private '%s.%s'"
    • UNSAFE_TYPE,     //"x1046 Unsafe type '%s%s%s'"
    • UNSAFE_CODE,    //"x1047 Unsafe code '%s'"
    • UNSAFE_CAST,    //"x1048 Unsafe typecast of '%s' to '%s'"
    • OPTION_TRUNCATED,   //"x1049 value '%s' for option %s was truncated"
    • WIDECHAR_REDUCED,   //"x1050 WideChar reduced to byte char in set expressions.  Consider using 'CharInSet' function in 'SysUtils' unit."
    • DUPLICATES_IGNORED,   //"x1051 Duplicate symbol names in namespace.  Using '%s.%s' found in %s.  Ignoring duplicate in %s"
    • UNIT_INIT_SEQ,   //"x1052 Can't find System.Runtime.CompilerServices.RunClassConstructor.  Unit initialization order will not follow uses clause order"
    • LOCAL_PINVOKE,   //"x1053 Local PInvoke code has not been made because external routine '%s' in package '%s' is defined using package local types in its custom attributes" // (.Net only)
    • MESSAGE_DIRECTIVE,   //"x1054 %s"
    • TYPEINFO_IMPLICITLY_ADDED,  //"x1055 PUBLISHED caused RTTI ($M+) to be added to type '%s'"
    • RLINK_WARNING,   //"x1056 %s%s%s"
    • IMPLICIT_STRING_CAST,   //"x1057 Implicit string cast from '%s' to '%s'"
    • IMPLICIT_STRING_CAST_LOSS,  //"x1058 Implicit string cast with potential data loss from '%s' to '%s'"
    • EXPLICIT_STRING_CAST,   //"x1059 Explicit string cast from '%s' to '%s'"
    • EXPLICIT_STRING_CAST_LOSS,  //"x1060 Explicit string cast with potential data loss from '%s' to '%s'"
    • CVT_WCHAR_TO_ACHAR,   //"x1061 Narrowing given WideChar constant (#$%04X) to AnsiChar lost information"
    • CVT_NARROWING_STRING_LOST,  //"x1062 Narrowing given wide string constant lost information"
    • CVT_ACHAR_TO_WCHAR,   //"x1063 Widening given AnsiChar constant (#$%02X) to WideChar lost information"
    • CVT_WIDENING_STRING_LOST,  //"x1064 Widening given AnsiString constant lost information"
    • NON_PORTABLE_TYPECAST,  //"x1065 Typecast of %s to %s is non-portable; code may run differently on 32bit and 64bit platforms"
    • LOST_EXT80_PRECISION,   //"x1066 Lost Extended floating point precision. Reduced to Double"
    • LNKDFM_NOTFOUND,   //"x1067 Unable to load DLL %s"
    • IMMUTABLE_STRINGS,   //"x1068 Modifying strings in place may not be supported in the future"
    • MOBILE_DELPHI,   //"x1069 %s"
    • UNSAFE_VOID_POINTER,   //"x1070 Use of untype pointer can disrupt instance reference counts"
     
    • XML_WHITESPACE_NOT_ALLOWED,  //"x1201 XML comment on '%s' has badly formed XML -- 'Whitespace is not allowed at this location.'"
    • XML_UNKNOWN_ENTITY,   //"x1202 XML comment on '%s' has badly formed XML -- 'Reference to undefined entity '%s'.'"
    • XML_INVALID_NAME_START,  //"x1203 XML comment on '%s' has badly formed XML -- 'A name was started with an invalid character.'"
    • XML_INVALID_NAME,   //"x1204 XML comment on '%s' has badly formed XML -- 'A name contained an invalid character.'"
    • XML_EXPECTED_CHARACTER,  //"x1205 XML comment on '%s' has badly formed XML -- 'The character '%c' was expected.'"
    • XML_CREF_NO_RESOLVE,   //"x1206 XML comment on '%s' has cref attribute '%s' that could not be resolved"
    • XML_NO_PARM,    //"x1207 XML comment on '%s' has a param tag for '%s', but there is no parameter by that name"
    • XML_NO_MATCHING_PARM,   //"x1208 Parameter '%s' has no matching param tag in the XML comment for '%s' (but other parameters do)"
    See Also

    Warnings (Delphi) ($WARNINGS)
    Declarations and Statements
    Directives, in Fundamental Syntactic Elements
    Category: Delphi
    Page Discussion View source History
    Log in / create account
    Search
     
    RAD Studio XE4
    XE4 Examples and Samples
    XE4 Libraries
    Main Page - XE4 Topics Wiki
    What's New in XE4
    Tutorials
    FireMonkey Application Platform
    Cross-Platform Applications
    Getting Started
    Steps in Developing a Project
    Key Application Types
    Win32 Developer's Guide
    Modeling Tools
    IDE Reference and Command-Line Utilities
    Delphi Reference
    C++ Reference
    Subject Index
    HTML5 Builder
    Previous Versions
    XE3 Topics
    XE2 Topics
    XE Topics
    2010 Topics
    In Other Languages
    Deutsch
    Français
    日本語
    Assistance
    Known Problems and Recent Fixes
    Random Page
    Recent changes
    Help
    Toolbox
    What links here
    Related changes
    Special pages
    Printable version
    Permanent link
    This page was last modified on 26 February 2013, at 11:16. Privacy policy About RAD Studio Disclaimers Help Feedback

  • 相关阅读:
    Linux入门之常用命令(14) kill
    【JVM命令系列】jstack
    【JVM命令系列】javap
    【JVM命令系列】jmap
    Hadoop安全(2)——————UserGroupInformation
    Hadoop安全(1)——————美团Hadoop安全实践
    软件测试流程进阶----两年软件测试总结
    每个程序员应该阅读的10本书籍
    成为优秀程序员的黄金10条法则
    Java异常的深入研究与分析
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/3232385.html
Copyright © 2020-2023  润新知