在CodeGear Delphi 2007中,如何关闭特定警告和提示?我试图关闭H2077 - 分配给'varname'的值从未使用过。
答案 0 :(得分:17)
您无法通过警告禁用特定提示。提示是那些不会对运行时代码产生任何潜在不利影响的事情。例如,当您看到提示“分配给'varname'的值从未使用过”时,它只是对您应该在代码中“清理”的内容的建议,但它不会导致任何潜在的运行时错误(除了您的自己的逻辑错误,当然:-)。通过调整代码可以最好地解决提示。
另一方面,警告是那些可能可能导致意外运行时行为并且真正应该解决的问题。例如,在为其赋值之前使用变量显然是未初始化变量的情况,并且可能导致“坏事”。在绝大多数情况下,应通过“修复”代码来解决警告问题。即便如此,在某些情况下,您可能会将警告视为“误报”,并确保代码正常运行。在这些情况下,您可以禁用特定警告。禁用所有警告是危险的。
答案 1 :(得分:13)
答案 2 :(得分:9)
为什么不改变代码以使提示消失?这些提示通常非常准确。如果你真的觉得代码行(我猜一些变量初始化或其他)对代码的读者很有用,即使它与编译器无关,你也可以用注释替换它。
答案 3 :(得分:4)
Lars说的是什么。此外,您可以通过按两次CTRL-O来获取完整的警告列表及其当前设置。它会将列表转储到当前单元的顶部。你可以通过那里找到你需要改变的那个。请记住稍后删除列表,否则稍后查看代码的人会讨厌你。 ;)
答案 4 :(得分: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;
注意:任何已发布到公共领域的代码。无需归属。