6

在 CodeGear Delphi 2007 中,如何关闭特定的警告和提示?我正在尝试关闭 H2077 - 分配给“varname”的值从未使用过。

4

5 回答 5

18

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

另一方面,警告是那些可能导致意外运行时行为并且确实应该解决的事情。例如,在为其赋值之前使用变量显然是未初始化变量的情况,这可能导致“坏事”。在绝大多数情况下,应该通过“修复”代码来解决警告。即便如此,在某些情况下,您可能会将警告视为“误报”,并确定代码运行正常。在这些情况下,您可以禁用特定警告。禁用所有警告是危险的。

于 2009-03-10T21:20:38.753 回答
15

提示?没有具体的。

您必须全部禁用它们:

{$HINTS OFF}

警告?

{$WARN _name_of_warning_ OFF|ON|ERROR}

在这里查看完整列表

于 2009-03-10T19:34:19.367 回答
9

您为什么不更改代码以使提示消失?这些提示通常非常准确。如果你真的觉得这行代码(我猜是一些变量初始化或其他)对你的代码的读者有用,即使它与编译器无关,你可以用注释替换它。

于 2009-03-10T19:47:22.377 回答
4

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

于 2009-03-10T20:59:27.430 回答
3

要删除具有以下内容的代码行的提示:

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;

注意:任何发布到公共领域的代码。无需归属。

于 2015-05-08T18:30:18.693 回答