Вот прием, который использует тот факт, что подсказка компилятора для «неиспользуемых приватных методов» содержит имя модуля, в котором объявлен класс, даже если класс с закрытым методом объявлен во включаемом файле.
Для этого необходимо, чтобы директива include для вашего включаемого файла появлялась в той части модуля, где допускаются объявления , то есть либо после условия использования в разделе интерфейса, либо после использования в разделе раздел реализации.
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): W1054 Предупреждения подавлены для не перенесенного устройства с закомментированным кодом, имя устройства см. В следующей строке
[Подсказка DCC] actualunitname.pas (5): Закрытый символ UnitWithSuppressedWarnings был объявлен, но никогда не использовался.
Обратите внимание, что имя фактической единицы появляется во второй строке.
Примечание: вы не увидите вторую строку, если подсказки компилятора отключены.