Когда мне следует добавить ссылку на файл в проект Delphi? - PullRequest
6 голосов
/ 29 мая 2010

Файлы модулей для стандартных файлов VCL, таких как Dialogs, StringUtils и т. Д., Никогда не упоминаются в DPR-файле проекта. Но когда мне добавить ссылку на DPR-файл? Теперь у меня есть собственные исходные файлы и источник собственных компонентов.

А как насчет исходных файлов для Ravereport, Devexpress, Indy, Gnostice и т. Д.? Я хочу максимально быстрое понимание кода, но, конечно, я не хочу добавлять наворот в DPR-файл. Я использую Delphi 2007

См. Также этот вопрос о связанной проблеме.

Привет

Ответы [ 3 ]

7 голосов
/ 29 мая 2010

Я всегда добавляю все свои собственные единицы кода, используемые проектом, в предложение dpr using. Блоки VCL и модули сторонних библиотек добавляются только по мере необходимости. Таким образом, путь к библиотеке проекта содержит только пути к библиотекам vcl и сторонних разработчиков.

Хотя для проекта нет необходимости компилировать, чтобы добавить все ваши модули в dpr проекта, и это немного дополнительной работы, это делает явные зависимости и помогает избежать проблем, вызванных неявным использованием, возможно, «старого» dcu скрывается на пути к библиотеке.

Это также помогает, когда у вас одинаковое имя юнита с разным контентом для разных проектов. Полезно для кода проекта, используемого совместно используемым модулем. Разделяемый модуль просто использует «unit1», а dpr говорит, какой именно. Более явный и менее подверженный ошибкам, чем использование пути к библиотеке.

Проект dpr также всегда содержит путь ко всем используемым компонентам, vcl или сторонним разработчикам. Путь к библиотеке в моих параметрах среды пуст. Он даже не содержит пути к vcl. Это может быть немного лишним, но эй, это легко проверить ...

Опять же, это помогает сделать явные зависимости, а когда вы используете свою собственную переменную среды в путях, например, $ (MVC) \ ComponentName \ Source, это также помогает при переносе кода на другой компьютер. Единственное, что мне нужно сделать, это скопировать партию (или перенести ее на USB-накопитель) и установить переменную среды MVC в Delphi IDE. И я могу быть уверен, что все, что установлено на другой машине, не помешает при создании моего проекта.

1 голос
/ 29 мая 2010

Я добавляю как можно меньше юнитов в .dpr. Это потому, что я не люблю помещать жестко закодированные пути туда, а с относительными путями иногда возникают странные ошибки (, как описано здесь ), и я могу относительно свободно перемещаться по коду.

Тем не менее, я на самом деле мало просматриваю юниты через инспектор проекта, я в основном берусь за юниты с помощью ctrl-enter, открывая юниты. Моему коллеге пришлось к этому привыкнуть, так что это может быть невыполнимо для довольной мышью команды.

1 голос
/ 29 мая 2010

Вам нужно только (и нужно только) добавлять ссылки на вещи в вашем DPR, которые фактически использует ваш DPR. Например, если вы пишете тестовый проект (проект, который содержит ваш тестовый код для вашего проекта), вы можете добавить 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 или другими сторонними юнитами, просто ссылаться на них в юнитах, которые их фактически используют.

...