Я думаю, вы можете получить результат, которого хотите достичь, используя конструкцию
{$if declared ...
.Вот пример его использования в SysInit.Pas в rtl:
function GetTlsSize: Integer;
{$IF defined(POSIX) and defined(CPUX86) and (not defined(EXTERNALLINKER))}
asm
// Use assembler code not to include PIC base gain
MOV EAX, offset TlsLast
end;
{$ELSE}
begin
Result := NativeInt(@TlsLast);
{$IF DECLARED(TlsStart)}
Result := Result - NativeInt(@TlsStart);
{$ENDIF}
[...]
. Как и в статье, о которой я упоминал в комментарии: $ Если объявлено , то это такжеэлектронная справка D2009 .
$if declared
работает с методами классов, например
procedure TMyClass.DoSomething;
begin
{$if declared(TMyClass.Added)} // Added being a procedure of TMyClass
Added;
{$endif}
end;