Используется с путем к файлу модуля в файле модуля

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

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

D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas

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

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

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

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

F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas

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

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

"F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas" нуждается в "D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas"

"14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas" нужно "8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas"

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

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

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

4 ответа

Решение

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

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

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

  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
  D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;

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

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

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

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

Другие вопросы по тегам