Файлы единицы для стандартных файлов VCL как Диалоговые окна, на StringUtils и т.д. никогда не ссылаются в файле DPR проектов. Но когда я должен добавить ссылку на файл DPR? Теперь у меня есть собственные исходные файлы и источник собственных компонентов.
Что относительно исходных файлов для Ravereport, Devexpress, Инди, Gnostice и т.д.? Я хочу максимально быстрый codeinsight, но конечно я не хочу добавлять чрезмерное увеличение размера к файлу DPR. Я использую Delphi 2007
См. также этот вопрос для связанной проблемы.
С уважением
Я всегда добавляю все свои собственные единицы кода, которые использует проект, в предложение dpr uses. Модули VCL и модули из сторонних библиотек добавляются только по мере необходимости. Таким образом, путь к библиотеке проекта содержит только пути к vcl и сторонним библиотекам.
Хотя для проекта не требуется компилировать, чтобы добавить все ваши модули в dpr проекта, и это немного лишняя работа, он делает зависимости явными и помогает избежать проблем, вызванных неявным использованием возможно "старых" dcu скрывается на пути к библиотеке.
Также помогает использование одного и того же юнита с разным содержанием для разных проектов. Полезно для кода конкретного проекта, используемого совместно используемым модулем. Разделяемый модуль просто использует «unit1», а dpr сообщает, какой именно. Более явный и менее подверженный ошибкам, чем использование пути к библиотеке.
dpr проекта также всегда включает путь ко всем используемым компонентам, vcl или сторонним. Путь к библиотеке в параметрах моей среды пуст. Он даже не содержит путей к vcl. Это может быть немного ott (наверху), но эй, это легко проверить ...
Опять же, это помогает сделать зависимости явными, и когда вы используете свою собственную переменную среды в путях, например $ (MVC ) \ ComponentName \ Source, это также помогает при переносе вашего кода на другую машину. Единственное, что мне нужно сделать, это скопировать партию (или перенести ее на USB-накопитель) и установить переменную среды MVC в IDE Delphi.И я могу быть уверен, что все, что установлено на другой машине, не помешает при сборке моего проекта.
Вам нужно (и следует) добавлять ссылки только на те вещи в вашем ДПР, которые ваш ДПР действительно использует. Например, если вы пишете тестовый проект (проект, содержащий тестовый код для вашего проекта), вы можете добавить GuiTestRunner или TextTestRunner (для DUnit):
program MyTest;
uses
all.pas in 'src\all.pas',
your.pas in 'src\your.pas',
project.pas in 'test\projects.pas',
units.pas in 'test\units.pas',
TextTestRunner;
var
R: TTestResult;
begin
R := TextTestRunner.RunRegisteredTests;
ExitCode := R.ErrorCount + R.FailureCount;
end.
В противном случае, при использовании Indy или других сторонних модулей, просто ссылайтесь на них в модулях, которые действительно их используют.
Я добавляю как можно меньше модулей в .dpr. Это потому, что мне не нравится прописывать там жестко закодированные пути, а с относительными путями иногда возникают странные ошибки (как описано здесь), и это оставляет мне возможность относительно свободно перемещаться по коду.
Однако я не часто просматриваю юниты через инспектор проекта, в основном я перемещаюсь по юнитам с помощью ctrl-enter, открывая юниты. Моему коллеге пришлось долго привыкать к этому, так что это может быть невыполнимо для команды, которая любит мышь.