Как отключить определенные предупреждения и подсказки Delphi? - PullRequest
5 голосов
/ 10 марта 2009

В CodeGear Delphi 2007 как я могу отключить определенные предупреждения и подсказки? Я пытаюсь отключить H2077 - значение, присвоенное 'varname', никогда не использовалось.

Ответы [ 5 ]

17 голосов
/ 11 марта 2009

Вы не можете отключить определенные подсказки, как вы можете с предупреждениями. Подсказки - это те вещи, которые не будут иметь потенциальных негативных последствий для вашего кода времени выполнения. Например, когда вы видите подсказку «Значение, присвоенное« varname », который никогда не использовался», это всего лишь предложение чего-то, что вы, вероятно, должны «очистить» в своем коде, но это не вызовет потенциальных ошибок времени выполнения (кроме собственные логические ошибки, конечно :-). Подсказки всегда лучше всего решать путем настройки кода.

Предупреждения, с другой стороны, это те вещи, которые могут возможно вызвать непреднамеренное поведение во время выполнения, и действительно должны быть устранены. Например, использование переменной перед присвоением ей значения - это, очевидно, случай неинициализированной переменной, что может привести к «плохим вещам». В подавляющем большинстве случаев предупреждения должны устраняться путем «исправления» кода. Даже тогда, в определенных обстоятельствах вы можете считать предупреждение «ложным срабатыванием» и уверены, что код работает правильно. В этих случаях вы можете отключить конкретное предупреждение. Отключение всех предупреждений опасно.

13 голосов
/ 10 марта 2009

Советы? Никаких конкретных .

Вам придется отключить их все:

{$HINTS OFF}

Предупреждения

{$WARN _name_of_warning_ OFF|ON|ERROR}

Проверьте здесь полный список

9 голосов
/ 10 марта 2009

Почему бы вам не изменить код, чтобы подсказка исчезла? Эти подсказки обычно довольно точны. И если вы действительно чувствуете, что строка кода (я предполагаю некоторую переменную инициализации или другую) полезна для читателя вашего кода, даже если она не имеет отношения к компилятору, вы можете заменить ее комментарием.

4 голосов
/ 10 марта 2009

Что сказал Ларс. Кроме того, вы можете получить полный список предупреждений и их текущих настроек, дважды нажав CTRL-O. Это выведет список вверху текущего блока. Вы можете просмотреть там, чтобы найти тот, который вам нужно изменить. Просто не забудьте удалить список позже, или люди, которые будут смотреть код позже, будут вас ненавидеть. ;)

3 голосов
/ 08 мая 2015

Чтобы удалить подсказку для строки кода, которая имеет:

H2077 Значение, присвоенное «% s», никогда не использовалось

Вы можете обернуть его в:

{$HINTS OFF}
//...
{$HINTS ON}

Например, из глючного Vcl.ComCtrls.pas:

procedure TTrackBarStyleHook.Paint(Canvas: TCanvas);
//....
begin
   if not StyleServices.Available then Exit;

   {$HINTS OFF}
   Thumb := ttbTrackBarDontCare; //value assigned to 'Thumb' never used
   {$HINTS ON}

   //...
end;

Примечание : любой код, опубликованный в открытом доступе. Указание авторства не требуется.

...