Автоматическое добавление объекта в проект
Я работаю над компонентом в Delphi 7
и Delphi 2006
, где я использую единицу, которую мне нужно добавить в файл .dpr
проекта, на котором компонент автоматически удаляется.
Подобно тому, как Eureka Log автоматически добавляет единицу "ExceptionLog" в файл проекта:
Может ли кто-нибудь подсказать мне, как программно добавить единицу в файл проекта, когда я помещаю свой компонент в любую форму в проекте?
3 ответа:
Для этого, скорее всего, придется использовать API Open Tools.
Также может потребоваться написать TSelectionEditor для вашего компонента, чтобы вызвать добавление единицы (я бы попробовал метод RequiresUnit).
Хотя есть простой способ просто добавить единицу в активный проект (код ниже), это работает только для активного проекта, который может не быть проектом, которому принадлежит форма, в которую вы добавляете компонент. Также он добавляет единицу в конце использования пункт.
uses ToolsAPI; var currentProject: IOTAProject; begin currentProject := GetActiveProject(); currentProject.AddFile('MyUnit.pas', True);
Вы можете проверить исходный кодGExperts , поскольку он содержит класс (TUsesManager), который может анализировать единицы и изменять предложение uses.