Pergunta

Em Delphi, você pode usar diretivas de compilador para desativar avisos específicos, tais como

{$WARN USE_BEFORE_DEF OFF}

Mas quando eu tentei fazer isso com uma pitada específica, cujo underscore_style_name eu saí do helpfile, o compilador disse que não sabe o que {$ DICA} é. Então, há alguma maneira de fazer isso?

Foi útil?

Solução

Não há dicas específicas, mas você pode desativá-los todos.

{$HINTS OFF}
procedure MyProc;
var
  i : integer;
begin
  DoSomething;
end;
{$HINTS ON}

Outras dicas

Little off-topic: Você deve tomar cuidado com dicas e avisos do compilador. Eles não são apenas para diversão. Compiler é apenas dizer "programa pode funcionar de forma diferente que você pensa, porque seu código-fonte não é exata".

Para jogá-lo realmente seguro, um gostaria de fazer algo parecido com isto:

function TopazGetText(const _s: string): string;
begin
{$IFOPT <something>+}
{$DEFINE HINTS_WERE_ON}
{$HINTS OFF}
{$ELSE}
{$UNDEF HINTS_WERE_ON}
{$ENDIF}
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
{$IFDEF HINTS_WERE_ON}
{$HINTS ON}
{$ENDIF}
end;

Infelizmente, não parece haver nenhuma diretiva de compilação para verificar se dicas são off ou não, então você não pode fazer isso. (H + não é para dicas, mas por longas cadeias). Além disso, sugestões OFF / ON não funciona dentro de uma função / procedimento.

Então você acaba transformando dicas e desligar incondicionalmente para toda a função:

{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}

(O compilador usado para dizer-me que não podia, em linha dzDGetText que é algo que não se preocupam com, neste caso, e eu não quero ver a dica, porque isso me (e meus colegas de trabalho) parar aos cuidados sobre dicas importantes.)

Melhor que posso pensar é cercar o tema da dica com uma condicional definir, e usar o mesmo condicional definir em torno do código que podem ou não podem ser necessários, como mostrado abaixo:

Se você tem este:

procedure MyProc;
var
  i : integer;
begin
  DoSomething;
  //SomethingWith_i_IsCommentedOut;
end;

Você receberá: Dica: variável "i" é declarada mas nunca usado

Então, tente isso em vez disso:

procedure MyProc;
  {$IFDEF USE_THE_I_PROCEDURE}
var
  i : integer;
  {$ENDIF}
begin
  DoSomething;
  {$IFDEF USE_THE_I_PROCEDURE}
  SomethingWith_i_IsCommentedOut;
  {$ENDIF}
end;

Agora você pode transformar a definir ligado ou desligado, e você nunca deve obter uma dica.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top