我移植从一个框架库到其他一些代码,这需要我注释掉大段代码只是为了得到它来编译,然后小心地将其还原。在此期间,我得到吨的,因为所有被注释掉的代码警告。所以我决定写一个快速的包含文件镇压他们:

{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code'}
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}

我在所有那些给我吨警告的单位包括本,但现在当我编译,返回的消息编译器的如下:

[DCC警告] unfinished.inc(1):抑制对unported单元W1054警告与注释的代码

我想它告诉我,该警告是从单位在做,包括,不包括文件本身到来。有没有办法做到这一点,或者到单位的工作为名到消息,而无需实际移动$ MESSAGE指示出包括文件并进入我这样做是每一个单位?

有帮助吗?

解决方案

下面是一招,它使用对“未使用私有方法”编译器暗示包含单元的名称的事实,所述类被声明在,即使与私有方法的类在一个包含文件被声明。

:此要求包括-指令为您的包括文件出现在单元,其中声明允许的一部分,所以无论是在接口部分或者的uses子句后uses子句后实现部分。

interface

uses Foo, Bar, Socks;

{$include Unfinished.inc}

您的包含文件应该是这样的:

{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code, Unit name see next line'}
type
  TUnit_With_Suppressed_Warnings = class
  private
    procedure UnitWithSuppressedWarnings; virtual; abstract;
  end;

{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}

现在,你会得到每一个包括包括文件单元以下两个信息:

  

[DCC警告] unfinished.inc(1):抑制对unported单元与注释的代码W1054警告,单元名称见下一行,点击   [DCC提示] actualunitname.pas(5):通过专用符号UnitWithSuppressedWarnings被宣布但从未使用

请注意,实际的单元的名称显示在第二行。

注:就不会看到第二行,如果编译器提示被关断

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top