Pergunta

Eu tenho um problema. Vou tentar explicar isso.

Eu tenho uma unidade que tem uma classe e pode ter novas funções.

D3BF4E849ACC45249B990F802EFB1F15 UnitFile1.PAS 8DC8977E7A7B469AACFE3CC77CA7075E Unitfile1.Pas

Ambos têm a mesma classe: iclass_1 = classe

Estou usando números de código para diferentes versões deste arquivo.

Outro arquivo da unidade (UnitFile2.PAs) usa esse arquivo de unidade (UnitFile1.PAs).

Além disso, o Second Unit File (UnitFile2.PAs) possui versões diferentes.

F94C439C822E490DB228F2C16EF2C190 UnitFile2.PAS 14CEEFAFF1D64DDD8CBDEDDD334D4A3FF UnitFile2.Pas

Ambos têm a mesma classe: iclass_2 = classe (iclass_1)

Agora o problema começa;

"F94C439C822E490DB28F2C16EF2C190 UnitFile2.Pas" Necessidades "D3BF4E849ACC45249B990F802EFB1F15 Unitfile1.Pas"

"14CEEFAFF1D64DDD8CBDEDDD334D4A3FF UnitFile2.Pas" NECESSIDADES "8DC8977E7A7B469AACFE3CC77CA7075E Unitfile1.Pas"

Mas os nomes de arquivos são os mesmos (eu preciso de um sistema como esse. Então eles são iguais). E no arquivo da unidade, Delphi não me permite escrever assim;

No arquivo F94C439C822E490DB28F2C16EF2C190 UnitFile2.Pas; Usa o UnitFile1 em 'D3BF4E849ACC45249B990F802EFB1F15 UnitFile1.pas';

Espero poder dizer meu problema. Como posso dizer ao compilador qual arquivo de unidade eu quero usar com seu caminho? (Estou usando Delphi-7)

Foi útil?

Solução

Dê aos nomes de unidades nomes diferentes, você pode simplesmente incluir as duas unidades do projeto.

Em seguida, use um alias de unidade em suas opções de projeto para criar um "nome da unidade virtual" que resolve uma ou outra dessas unidades reais. Nas unidades que "usam" uma ou outra delas referenciá -las pelo alias da unidade - o "nome virtual".

por exemplo, no DPR:

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

Em suas unidades:

   uses
     UnitFile1;

Nas opções de projeto, um alias de unidade que é:

   UnitFile1=UnitFile1a

OU

   UnitFile1=UnitFile1b

Você pode construir seu projeto com qualquer "UnitFile1?" A unidade é apropriada simplesmente alterando o alias da unidade.

Outras dicas

Você precisa configurar as opções do seu projeto para colocar as "D3BF4E849ACC45249B990F802EFB1F15" e "F94C439C822E490DB228F2C16EF2C190" nos caminhos de pesquisa. Você não pode especificar os caminhos da unidade no código.

Não tenho certeza se isso resolve seu problema, mas existe o conceito de namespaces, que permite que você coloque pontos em nomes de unidades como este:

Em vez de ter o mesmo nome de arquivo em diretórios diferentes ...

D3BF4E849ACC45249B990F802EFB1F15 UnitFile1.PAS 8DC8977E7A7B469AACFE3CC77CA7075E Unitfile1.Pas

F94C439C822E490DB228F2C16EF2C190 UnitFile2.PAS 14CEEFAFF1D64DDD8CBDEDDD334D4A3FF UnitFile2.Pas

Você pode usar um prefixo de nome do arquivo:

D3BF4E849ACC45249B990F802EFB1F15.UNITFILE1.PAS 8DC8977E7A7B469AACFE3CC77CA7075E.UNITFILE1.PAS

F94C439C822E490DB228F2C16EF2C190.UNITFILE2.PAS 14CEEFAFF1D64DDD8CBDDEDD334D4A3FF.UNITFILE2.PAS

Você pode usar os nomes de arquivos completos na cláusula de uso, por exemplo:

uses
  D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;

Sim, isso funciona com o Delphi 7.

Até onde eu sei, você não pode adicionar duas unidades com o mesmo nome a um projeto.

Você pode adicionar a pasta correta às opções do projeto ou adicionar as unidades necessárias ao 'View - Gerente de Projeto' tela (clique com o botão direito do mouse no nome do projeto e escolha 'Adicionar'. Escolha o unidade correta no pasta correta, e do que você pode usar apenas o nome da unidade em todas as formas e outras unidades do seu projeto.

Por que você gostaria de usar esses nomes de pastas enigmáticas está realmente além de mim. Não consigo pensar em nenhuma razão pela qual você gostaria de fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top