Как в CodeGear Delphi 2007 отключить определенные предупреждения и подсказки? Я пытаюсь отключить H2077 - значение, присвоенное «varname», никогда не использовалось.
Как отключить определенные предупреждения и подсказки Delphi?
Ответы (5)
Подсказки? Нет конкретного.
Вам придется отключить их все:
{$HINTS OFF}
Предупреждения?
{$WARN _name_of_warning_ OFF|ON|ERROR}
Здесь вы найдете полный список
Вы не можете отключить определенные подсказки, как вы можете отключить предупреждения. Подсказки - это те вещи, которые не окажут потенциально неблагоприятного воздействия на ваш исполняемый код. Например, когда вы видите подсказку «Значение, присвоенное 'varname' никогда не использовалось», это просто предложение чего-то, что вы, вероятно, должны «очистить» в своем коде, но это не вызовет никаких потенциальных ошибок времени выполнения (кроме ваших собственные логические ошибки, конечно :-). Подсказки всегда лучше всего устранять путем настройки кода.
С другой стороны, предупреждения - это те вещи, которые могут вызвать непредусмотренное поведение во время выполнения, и действительно их необходимо устранить. Например, использование переменной перед присвоением ей значения явно является случаем неинициализированной переменной и может привести к «плохим вещам». В подавляющем большинстве случаев предупреждения следует устранять путем «исправления» кода. Даже в этом случае при определенных обстоятельствах вы можете посчитать предупреждение «ложным срабатыванием» и уверены, что код работает правильно. В таких случаях вы можете отключить конкретное предупреждение. Отключение всех предупреждений опасно.
Почему бы вам вместо этого не изменить код, чтобы подсказка исчезла? Эти подсказки обычно довольно точны. И если вы действительно чувствуете, что строка кода (я предполагаю, что инициализация какой-то переменной или что-то другое) полезна для читателя вашего кода, даже если она не имеет отношения к компилятору, вы можете заменить ее комментарием.
Что сказал Ларс. Также вы можете получить полный список предупреждений и их текущие настройки, дважды нажав CTRL-O. Он сбросит список вверху текущего блока. Вы можете просмотреть там, чтобы найти тот, который вам нужно изменить. Просто не забудьте удалить список позже, иначе люди, просмотревшие код позже, возненавидят вас. ;)
Чтобы удалить подсказку для строки кода, которая имеет:
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;
Примечание: любой код, выпущенный в общественное достояние. Ссылка на авторство не требуется.