$WARNINGSWarnings sao alertas emitidos durante a compilacao que apontam para um potencial ou real problema no codigo fonte.Algumas vezes, por exemplo, os warnings se referem a variaveis que foram declaradas mas que nao estao sendo usadas. Esse e um caso onde nao ha um problema, mas mesmo assim vale a pena dar atencao para esse warning porque ele e um indicio de que ha espaco para tornar seu codigo fonte mais limpo/claro.O ideal e nunca ter qualquer warning emitido durante a compilacao.Em certos casos o compilador emite alertas para um trecho de codigo do qual temos a certeza de estar correto, e que esse alerta poderia ser desconsiderado sem qualquer receio.Para essa situacao nos podemos usar a diretiva de compilacao {$WARNINGS} para desabilitar a emisao dos warnings em um certo techo de codigo.{$WARNINGS OFF}// Seu codigo fonte{$WARNINGS ON}Uma outra abordagem mais recomendada para essa situacao e desabilitar somente o warning especifico a qual se tem ciencia de nao representar problema. Isso evita que outros warnings sejam desconsiderados nao intencionalmente em decorrencia de uma modificacao futura nesse trecho de codigo, principalmente se o trecho de codigo for relativamente grande.A sitaxe e:{$WARN identifier OFF}// Seu codigo fonte{$WARN identifier ON}onde "identifier" e o simbolo correspondente do warning.Considere o exemplo abaixo:unit uTest;interface procedure MyTest; experimental;implementationprocedure MyTest;begin // Codigo fonteend;end.Para quem nao sabe "experimental" e uma palavra reservada que pode ser usada para metodos, funcoes, units e outros com a intencao clara de sinalizar que tal implementacao esta, como o proprio nome sugere, em face experimental e que deve ser cauteloso no seu uso.Ao compilar esse exemplo sera apresentado uma mensagem semelhante a essa:[DCC Warning] Project2.dpr(13): W1003 Symbol 'MyTest' is experimentalO codigo de identificacao desse warning, como mostra a mensagem, e 1003 e o correspondente simbolo e SYMBOL_EXPERIMENTAL. Dessa forma, caso queira anular tal alerta em um trecho de codigo, basta usar:{$WARN SYMBOL_EXPERIMENTAL OFF}// trecho de codigo{$WARN SYMBOL_EXPERIMENTAL ON} Nao tenho intencao de listar todos os simbolos pre-definidos que o Delphi possui, mas vou detalhar alguns poucos:HIDING_MEMBER: Warning produzido quando uma descendente declara uma nova propriedade com o mesmo nome que uma propriedade do ancestral.HIDDEN_VIRTUAL: Warning produzido quando um descendente declara um metodo, nao especificado como override, e com o mesmo nome de um metodo virtual do ancestral.HRESULT_COMPAT: Warning sobre o uso do tipo "Integer" no lugar de um HRESULT.STRING_CONST_TRUNCED: Todos os warnings sobre instancias na qual o compilador atribui um string literal ou um valor constante para um short string cujo tamanho e menor do que o suficiente.SYMBOL_DEPRECATED: Habilita/desabilita todos os warnings sobre simbolos definidos como deprecated na unit corrente.SYMBOL_EXPERIMENTAL: Habilita/desabilita todos os warnings sobre simbolos definidos como experimental na unit corrente.SYMBOL_PLATFORM: Habilita/desabilita todos os warnings sobre simbolos definidos como platform na unit corrente.SYMBOL_LIBRARY: Habilita/desabilita todos os warnings sobre simbolos definidos library na unit corrente.UNIT_DEPRECATED: Habilita/desabilita todos os warnings relacionadas a units definidas como deprecated.UNIT_EXPERIMENTAL: Habilita/desabilita todos os warnings relacionadas a units definidas como experimental.UNIT_LIBRARY: Habilita/desabilita todos os warnings relacionadas a units definidas como library.UNIT_PLATFORM: Habilita/desabilita todos os warnings relacionadas a units definidas como platform. ZERO_NIL_COMPAT: Warnings sobre instancias na qual o compilador converte o valor