delphi – 有没有办法从包含文件中获取当前单位的名称?
我正在将一些代码从一个框架库移植到另一个框架库,这需要我注释掉大部分代码才能使其编译,然后仔细恢复它们.与此同时,由于所有已注释掉的代码,我收到了大量警告.所以我决定写一个快速包含文件来压制它们:
{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code'} {$WARN NO_RETVAL OFF} {$WARN USE_BEFORE_DEF OFF} 我把它包括在给我大量警告的所有单元中,但是现在当我编译时,编译器返回如下消息: [DCC警告] unfinished.inc(1):W1054对带有注释掉代码的未移植单元的警告被禁止 我想告诉我,警告来自执行包含的单位,而不是包含文件本身.有没有办法做到这一点,或者将单元的名称用于消息,而不是实际将$MESSAGE指令移出include文件并进入我执行此操作的每个单元? 解决方法
这是一个技巧,它使用“未使用的私有方法”的编译器提示包含单元名称的事实,即使在包含文件中声明具有私有方法的类,也会声明该类.
这要求包含文件的include-directive出现在允许声明的单元的一部分中,因此要么在接口部分中的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} 现在,您将为包含该包含文件的每个单元获取以下两条消息:
请注意,实际单位的名称显示在第二行. 备注:如果编译器提示已关闭,您将看不到第二行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |