¿Pueden deshabilitarse las sugerencias específicas de Delphi?
compiler-construction directive (4)
Lo mejor que puedo pensar es rodear el tema de la pista con una definición condicional, y usar la misma definición condicional alrededor del código que puede o no ser necesaria, como se muestra a continuación:
Si tienes esto:
procedure MyProc;
var
i : integer;
begin
DoSomething;
//SomethingWith_i_IsCommentedOut;
end;
Obtendrá: Sugerencia: la variable "i" se declara pero nunca se usa
Así que intente esto en su lugar:
procedure MyProc;
{$IFDEF USE_THE_I_PROCEDURE}
var
i : integer;
{$ENDIF}
begin
DoSomething;
{$IFDEF USE_THE_I_PROCEDURE}
SomethingWith_i_IsCommentedOut;
{$ENDIF}
end;
Ahora puedes activar o desactivar la definición, y nunca deberías obtener una pista.
En Delphi, puede usar las directivas del compilador para desactivar advertencias específicas, como
{$WARN USE_BEFORE_DEF OFF}
Pero cuando traté de hacer eso con una pista específica, cuyo underscore_style_name salí del archivo de ayuda, el compilador dijo que no sabe qué es {$ HINT}. Entonces, ¿hay alguna manera de hacer esto?
No hay sugerencias específicas, pero puedes deshabilitarlas todas.
{$HINTS OFF}
procedure MyProc;
var
i : integer;
begin
DoSomething;
end;
{$HINTS ON}
Poco fuera de tema: debe tener cuidado con las sugerencias y advertencias del compilador. No son solo por diversión. El compilador solo dice que "el programa puede funcionar de forma diferente a lo que piensas porque TU código fuente no es exacto".
Para jugarlo realmente seguro, a uno le gustaría hacer algo como esto:
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;
Desafortunadamente, parece que no hay una directiva de compilación para verificar si las sugerencias están desactivadas o no, por lo que no puede hacer esto. (H + no es para pistas, sino para cadenas largas). Además, HINTS OFF / ON no funciona dentro de una función / procedimiento.
Así que terminas dando consejos de forma incondicional para toda la función:
{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}
(El compilador solía decirme que no podía alinear dzDGetText, que es algo que no me importa en este caso y no quiero ver la pista porque esto me impediría (y a mis compañeros de trabajo) preocuparme por pistas importantes .)