有没有办法在一个包含文件获取当前单位的名称?
-
06-09-2019 - |
题
我移植从一个框架库到其他一些代码,这需要我注释掉大段代码只是为了得到它来编译,然后小心地将其还原。在此期间,我得到吨的,因为所有被注释掉的代码警告。所以我决定写一个快速的包含文件镇压他们:
{$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被宣布但从未使用
请注意,实际的单元的名称显示在第二行。
注:就不会看到第二行,如果编译器提示被关断
。不隶属于 StackOverflow