Domanda

In Delphi, puoi usare le direttive del compilatore per disabilitare avvisi specifici, come

{$WARN USE_BEFORE_DEF OFF}

Ma quando ho provato a farlo con un suggerimento specifico, di cui underscore_style_name sono uscito dal file di aiuto, il compilatore ha detto che non sa cosa sia {$ HINT}. Quindi c'è un modo per farlo?

È stato utile?

Soluzione

Nessun suggerimento specifico, ma puoi disabilitarli tutti.

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

Altri suggerimenti

Poco fuori tema: dovresti prestare attenzione ai suggerimenti e agli avvisi del compilatore. Non sono solo per divertimento. Il compilatore sta solo dicendo che il programma potrebbe funzionare diversamente da quello che pensi perché il TUO codice sorgente non è esatto " ;.

Per giocare davvero al sicuro, si vorrebbe fare qualcosa del genere:

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;

Sfortunatamente non sembra esserci alcuna direttiva del compilatore per verificare se i suggerimenti sono disattivati ??o meno, quindi non puoi farlo. (H + non è per suggerimenti ma per stringhe lunghe). Inoltre, HINTS OFF / ON non funziona all'interno di una funzione / procedura.

Quindi finisci per disattivare e attivare i suggerimenti incondizionatamente per l'intera funzione:

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

(Il compilatore mi diceva che non poteva incorporare dzDGetText che è qualcosa di cui non mi interessa in questo caso e non voglio vedere il suggerimento perché questo avrebbe impedito a me (e ai miei colleghi) di preoccuparmene su suggerimenti importanti.)

La cosa migliore che mi viene in mente è di circondare il soggetto del suggerimento con una definizione condizionale e utilizzare lo stesso criterio condizionale intorno al codice che potrebbe essere necessario o meno, come mostrato di seguito:

Se hai questo:

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

Otterrai: Suggerimento: variabile " i " è dichiarato ma mai usato

Quindi prova questo invece:

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

Ora puoi attivare o disattivare la definizione e non dovresti mai avere un suggerimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top