Я хочу иметь возможность определить, скомпилирована ли конкретная единица в программе Delphi, например. блок SomeUnitName является частью некоторых моих программ, но не других. Я хотел бы иметь функцию
function IsSomeUnitNameInProgram: boolean;
(который, конечно, не объявлен в SomeUnitName, потому что в этом случае он всегда будет включен), что во время выполнения возвращает true, если блок был скомпилирован в программу, а false, если нет.
Мои мысли до сих пор шли по линиям использования информации об отладке jcl (скомпилированной из подробного файла карты), который я в основном добавляю ко всем моим программам для определения этой информации, но я бы предпочел, если бы jcl не требовалось.
Добавление кода в SomeUnitName не является вариантом.
Это в настоящее время для Delphi 2007, но желательно также работать для Delphi XE2.
Любые мысли?
некоторый фон на этом, так как @DavidHeffernan спросил:
Это не только для одной программы, но и для более чем 100 различных. Большинство из них используются внутри страны, но некоторые из них также доставляются клиентам. Поскольку мы используем довольно много библиотек, некоторые покупают других в разных лицензиях с открытым исходным кодом, я хотел бы добавить вкладку "кредиты" в поле about, которое отображает только те библиотеки, которые фактически были скомпилированы в программу, а не все из них. Благодаря ответу от TOndrej, это работает именно так, как я хотел: Код проверяет единицу, которая всегда связана, если библиотека используется программой, и если она есть, она добавляет имя библиотеки, авторское право и ссылку на нее в поле about.