Вопрос

У меня проблема.Я попытаюсь это объяснить.

У меня есть модуль, который имеет класс и, возможно, будет иметь новые функции.

D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas

Оба они имеют одинаковый класс:IClass_1 = класс

Я использую кодовые номера для разных версий этого файла.

Другой модульный файл (UnitFile2.pas) использует этот модульный файл (UnitFile1.pas).

Кроме того, второй модульный файл (UnitFile2.pas) имеет разные версии.

F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas

Оба они имеют одинаковый класс:IClass_2 = класс (IClass_1)

Теперь начинается проблема;

"F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas" требуется "D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas"

"14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas" требуется "8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas"

Но имена файлов одинаковы (мне нужна такая система.Так что они одинаковые).И в unit-файле delphi не позволяет мне писать подобное;

В файле F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas;использует UnitFile1 в 'D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas';

Я надеюсь, что смог бы рассказать о своей проблеме.Как я могу сообщить компилятору, какой модульный файл я хочу использовать, указав его путь?(Я использую Delphi-7)

Это было полезно?

Решение

Дайте вашим подразделениям РАЗНЫЕ названия, после чего вы можете просто включить оба подразделения в проект.

Затем используйте псевдоним объекта в настройках вашего проекта, чтобы создать "имя виртуального объекта", которое соответствует одному или другому из этих реальных объектов.В подразделениях, которые "используют" то или иное из них, ссылаются на них по псевдониму подразделения - "виртуальному имени".

например ,в днр:

  uses
    ...
    UnitFile1a in '....\UnitFile1a.pas',
    UnitFile1b in '....\UnitFile1b.pas',
    ...

В ваших подразделениях:

   uses
     UnitFile1;

В параметрах вашего проекта укажите псевдоним объекта, который является либо:

   UnitFile1=UnitFile1a

или

   UnitFile1=UnitFile1b

Затем вы можете создать свой проект с любым "UnitFile1?" подходящим модулем, просто изменив псевдоним модуля.

Другие советы

Вы должны настроить параметры вашего проекта, чтобы указать "D3BF4E849ACC45249B990F802EFB1F15" и "F94C439C822E490DB228F2C16EF2C190" в путях поиска.Вы не можете указать пути к единицам измерения в коде.

Я не уверен, решает ли это вашу проблему, но существует концепция пространств имен, которая позволяет вам ставить точки в имена единиц, подобные этому:

Вместо того , чтобы иметь одно и то же имя файла в разных каталогах ...

D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas

вы могли бы использовать префикс имени файла:

D3BF4E849ACC45249B990F802EFB1F15.UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E.UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190.UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF.UnitFile2.pas

Затем вы можете использовать полные имена файлов в предложении uses, например:

uses
  D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;

Да, это работает с Delphi 7.

Насколько я знаю, вы не можете добавить в проект два модуля с одинаковым именем.

Вы можете добавить правильную папку в Параметры проекта, или вы можете добавить необходимые единицы измерения в "Просмотр - Менеджер проекта" экран (щелкните правой кнопкой мыши название проекта и выберите "Добавить".Выберите тот правильная единица измерения в правильная папка, и с этого момента вы можете использовать только название объекта в каждой форме и другой объект в вашем проекте.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top