Delphi禁用警告失败

7

我有以下代码在Delphi 2007应用程序中:

function TBaseCriteriaObject.RecursiveCount(
  ObjType: TBaseCriteriaObjectClass): integer;
var    
  CurObj: TBaseCriteriaObject;
begin
  result := 0;
{$WARNINGS OFF}
  for CurObj in RecursiveChildren(ObjType) do
    Inc(Result);
{$WARNINGS ON}
end;

这会产生以下警告:

[DCC Warning] BaseCriteriaObject.pas(255): H2077 Value assigned to 'CurObj' never used

我理解这个警告,但不想改变代码,那么我该怎么消除这个警告呢?因为{$WARNINGS OFF}在这种情况下似乎不起作用。
1个回答

7

来自 Delphi 帮助文档:

$WARNINGS 指令只能在过程或函数级别的粒度上工作。也就是说,您可以用 $WARNINGS 指令包围整个过程和函数,但不能用于过程或函数内的语句块。


1
兄弟,干杯!它似乎是一个提示,而不是警告。{$HINTS OFF}会禁用它(当在过程周围时,而不是语句)。 - Alan Clark
2
函数的警告设置是在达到函数结束点时生效的任何设置。 - Rob Kennedy
@Rob Kennedy:有趣的评论。你一定看过编译器源代码 :)。 - kludg
不,只是以前经验丰富了。同样的规则适用于溢出检查({$Q}),但不适用于范围检查({$R})。 - Rob Kennedy

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