Ответ 1
Никаких конкретных подсказок, но вы можете отключить их все.
{$HINTS OFF}
procedure MyProc;
var
i : integer;
begin
DoSomething;
end;
{$HINTS ON}
В Delphi вы можете использовать директивы компилятора для отключения определенных предупреждений, например
{$WARN USE_BEFORE_DEF OFF}
Но когда я попытался сделать это с помощью конкретного подсказки, чье имя underscore_style_name вышло из файла справки, компилятор сказал, что он не знает, что такое {$ HINT}. Так есть ли способ сделать это?
Никаких конкретных подсказок, но вы можете отключить их все.
{$HINTS OFF}
procedure MyProc;
var
i : integer;
begin
DoSomething;
end;
{$HINTS ON}
Немного не по теме: вы должны позаботиться о подсказках и предупреждениях компилятора. Они не просто для удовольствия. Компилятор просто говорит: "Программа может работать по-другому, что вы думаете, потому что ваш исходный код не является точным".
Чтобы играть в нее действительно безопасно, хотелось бы сделать что-то вроде этого:
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;
К сожалению, похоже, что не существует директивы компилятора для проверки того, отключены ли подсказки или нет, поэтому вы не можете этого сделать. (H + не для подсказок, а для длинных строк). Кроме того, HINTS OFF/ON не работает внутри функции/процедуры.
Итак, вы в конечном итоге отключаете намеки и безоговорочно выполняете всю функцию:
{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}
(Компилятор говорил мне, что он не может встроить dzDGetText, что в этом случае мне неинтересно, и я не хочу видеть подсказку, потому что это остановит меня (и моих коллег) на попечение о важных подсказках.)
Лучше, чем я могу думать, это окружить тему подсказки условным определением и использовать те же условные определения вокруг кода, который может или не понадобится, как показано ниже:
Если у вас есть это:
procedure MyProc;
var
i : integer;
begin
DoSomething;
//SomethingWith_i_IsCommentedOut;
end;
Вы получите: Подсказка: переменная "i" объявлена, но никогда не используется
Поэтому попробуйте это вместо:
procedure MyProc;
{$IFDEF USE_THE_I_PROCEDURE}
var
i : integer;
{$ENDIF}
begin
DoSomething;
{$IFDEF USE_THE_I_PROCEDURE}
SomethingWith_i_IsCommentedOut;
{$ENDIF}
end;
Теперь вы можете включить или отключить определение, и вы никогда не должны давать подсказки.