如何关闭特定的Delphi警告和提示?

6

在CodeGear Delphi 2007中,我该如何关闭特定的警告和提示?我正试图关闭H2077 - 对“varname”赋值却从未使用的警告。

5个回答

18

您无法像警告一样禁用特定的提示信息。提示是那些不会对运行时代码产生任何潜在负面影响的内容。例如,当您看到提示“分配给 'varname' 的值未被使用”时,它只是建议您在代码中进行“清理”的一个建议,但它不会导致任何潜在的运行时错误(当然除了您自己的逻辑错误)提示最好通过调整代码来解决。

另一方面,警告则表示可能会导致意外的运行时行为,因此确实应该注意和解决。例如,在变量赋值之前使用变量显然是未初始化变量的情况,这可能会导致“糟糕的事情”发生。在绝大多数情况下,警告应该通过“修复”代码来解决。即使在某些情况下,您认为警告是“错误的”,并且确定代码正在正确运行,也可以禁用特定的警告。禁用所有警告是危险的。


3
随着我编程水平的提高,虚假阳性的情况减少了。 - Jim McKeeth

16

提示?没有具体的

你需要将它们全部禁用:

{$HINTS OFF}

警告?

{$WARN _name_of_warning_ OFF|ON|ERROR}

点击这里查看完整列表。


1
我已经检查了这两个,似乎找不到适用于H2077的正确选项。你有任何想法它们可能在哪里定义了吗? - Dustin Venegas
2
H表示提示,提示不能被特别忽略。但是您可以关闭该行的所有提示。 - Lars Truijens

9
为什么不改变代码,让提示消失呢?这些提示通常相当准确。如果您真的认为代码行(我猜测是某个变量初始化或其他)对于代码读者有用,即使对编译器来说是无关紧要的,您也可以用注释替换它。

Jim,这是我继承的一个程序,其中有数十亿个这样的东西。我正在尝试将其过滤,以便在有任何实际错误时可以阅读它。问题是,这些变量被初始化为一个从未使用过的特定值。这没关系,这只是变量初始化。 - Dustin Venegas
Dustin,这不仅仅是变量初始化。像这样的提示可以指出代码中可能存在的问题或执行路径,这些问题你可能没有考虑过。花几秒钟来检查代码并修复它,你不需要一次性完成所有工作。 - Ken White

4

Lars说的没错。此外,您可以通过按两次CTRL-O来获取警告的完整列表及其当前设置。 它会在当前单元格的顶部转储一个列表。 您可以浏览其中以找到需要更改的警告。 只需记得稍后删除该列表,否则之后查看代码的人会讨厌您。 ;)


3

要移除代码行的提示信息,该提示信息如下:

H2077 Value assigned to '%s' never used

您可以将其包裹在以下语句中:

{$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;

注意: 任何代码均放入公共领域,无需归属声明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接