在Delphi中,您可以使用编译器指令来禁用特定警告,例如
{$WARN USE_BEFORE_DEF OFF}
但是当我尝试针对一个具体的提示使用这种方式,即使用我在帮助文件中找到的下划线风格名称进行设置时,编译器会报错说不知道 {$HINT} 是什么。那么有没有其他方法可以实现这个目的呢?
{$WARN USE_BEFORE_DEF OFF}
但是当我尝试针对一个具体的提示使用这种方式,即使用我在帮助文件中找到的下划线风格名称进行设置时,编译器会报错说不知道 {$HINT} 是什么。那么有没有其他方法可以实现这个目的呢?
没有具体的提示,但是你可以禁用它们全部。
{$HINTS OFF}
procedure MyProc;
var
i : integer;
begin
DoSomething;
end;
{$HINTS ON}
有点离题:你应该关注编译器的提示和警告。它们不是为了好玩而存在的。编译器只是在说“你的源代码不准确,程序可能会产生你意想不到的结果”。
function TopazGetText(const _s: string): string;
begin
{$IFOPT <something>+}
{$DEFINE HINTS_WERE_ON}
{$HINTS OFF}
{$ELSE}
{$UNDEF HINTS_WERE_ON}
{$ENDIF}
Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
{$IFDEF HINTS_WERE_ON}
{$HINTS ON}
{$ENDIF}
end;
{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}
编译器曾告诉我它无法内联dzDGetText,但在这种情况下我并不关心这个问题,也不想看到提示信息,因为这会阻止我(以及我的同事)关注重要的提示。
我能想到的最好的方法是用条件定义来包围提示的主题,并在可能或不可能需要的代码周围使用相同的条件定义,如下所示:
如果你有这个:
procedure MyProc;
var
i : integer;
begin
DoSomething;
//SomethingWith_i_IsCommentedOut;
end;
procedure MyProc;
{$IFDEF USE_THE_I_PROCEDURE}
var
i : integer;
{$ENDIF}
begin
DoSomething;
{$IFDEF USE_THE_I_PROCEDURE}
SomethingWith_i_IsCommentedOut;
{$ENDIF}
end;
现在你可以打开或关闭定义,并且你永远不会收到提示。