Автоматическое добавление объекта в проект


Я работаю над компонентом в Delphi 7 и Delphi 2006, где я использую единицу, которую мне нужно добавить в файл .dpr проекта, на котором компонент автоматически удаляется. Подобно тому, как Eureka Log автоматически добавляет единицу "ExceptionLog" в файл проекта:

Введите описание изображения здесь

Может ли кто-нибудь подсказать мне, как программно добавить единицу в файл проекта, когда я помещаю свой компонент в любую форму в проекте?

3 5

3 ответа:

Для этого, скорее всего, придется использовать API Open Tools.

Также может потребоваться написать TSelectionEditor для вашего компонента, чтобы вызвать добавление единицы (я бы попробовал метод RequiresUnit).

Хотя есть простой способ просто добавить единицу в активный проект (код ниже), это работает только для активного проекта, который может не быть проектом, которому принадлежит форма, в которую вы добавляете компонент. Также он добавляет единицу в конце использования пункт.

uses
  ToolsAPI;

var
  currentProject: IOTAProject;
begin
  currentProject := GetActiveProject();
  currentProject.AddFile('MyUnit.pas', True);

Вы можете проверить исходный кодGExperts , поскольку он содержит класс (TUsesManager), который может анализировать единицы и изменять предложение uses.

Нечетно.

Я обычно устанавливал свой dpr по умолчанию, чтобы содержать почти ничего, в результате мой набор инструментов был очень пуст. Так что если он был в моем наборе инструментов, он был в ДНР - с чем у вас возникли проблемы - обычно, если он в наборе инструментов, он уже в ДНР.

Перейдите в раздел Project > Eurekalog Options и отключите Eurekalog.