Pregunta

Tengo un problema.Intentaré explicarlo.

Tengo una unidad que tiene una clase y puede que tenga nuevas funciones.

D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas

Ambos tienen la misma clase:IClass_1 = clase

Estoy usando números de código para diferentes versiones de este archivo.

Otro archivo de unidad (UnitFile2.pas) usa ese archivo de unidad (UnitFile1.pas).

Además, el segundo archivo de unidad (UnitFile2.pas) tiene diferentes versiones.

F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas

Ambos tienen la misma clase:IClase_2 = clase(IClase_1)

Ahora comienza el problema;

"F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas" necesidades "D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas"

"14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas" necesidades "8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas"

Pero los nombres de los archivos son los mismos (necesito un sistema como este.Entonces son iguales).Y en el archivo unitario, Delphi no me deja escribir así;

En el archivo F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas;utiliza UnitFile1 en 'D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas';

Espero poder contar mi problema.¿Cómo puedo decirle al compilador qué archivo de unidad quiero usar con su ruta?(Estoy usando Delphi-7)

¿Fue útil?

Solución

Dé a sus nombres de las unidades nombres diferentes, a continuación, puede simplemente incluir ambas unidades en el proyecto.

A continuación, utilizar un alias de la unidad en sus opciones de proyecto para crear un "nombre de la unidad virtual" que se resuelve a una u otra de estas unidades reales. En unidades que "utilización" uno u otro de estos referencia ellos por los alias de unidades -. El "nombre virtual"

por ejemplo. en el DPR:

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

En las unidades:

   uses
     UnitFile1;

En las opciones de proyectar una unidad de alias que sea:

   UnitFile1=UnitFile1a

o

   UnitFile1=UnitFile1b

A continuación, puede construir su proyecto con el que sea "UnitFile1?" unidad es apropiada simplemente cambiando el alias unidad.

Otros consejos

Tiene que configurar sus opciones de proyecto para poner el "D3BF4E849ACC45249B990F802EFB1F15" y "F94C439C822E490DB228F2C16EF2C190" en las rutas de búsqueda. No se puede especificar las rutas de acceso de unidad en el código.

No estoy seguro de si esto resuelve su problema, pero no es el concepto de espacios de nombres, lo que le permite poner puntos en nombres de las unidades como esta:

En lugar de tener el mismo nombre de archivo en diferentes directorios ...

\ D3BF4E849ACC45249B990F802EFB1F15 UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas

\ F94C439C822E490DB228F2C16EF2C190 UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas

Se puede usar un prefijo de nombre de archivo:

D3BF4E849ACC45249B990F802EFB1F15.UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E.UnitFile1.pas

F94C439C822E490DB228F2C16EF2C190.UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF.UnitFile2.pas

A continuación, puede utilizar los nombres completos en la cláusula usos, por ejemplo:.

uses
  D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;

Sí, esto funciona con Delphi 7.

Hasta donde yo sé, no se pueden agregar dos unidades con el mismo nombre a un proyecto.

Puede agregar la carpeta correcta a las Opciones del proyecto, o puede agregar las unidades necesarias al 'Ver - Gerente de Proyecto' pantalla (haga clic derecho en el nombre del proyecto y elija 'Agregar'.Elige el unidad correcta en el carpeta correcta, y de ahí en adelante podrá usar solo el nombre de la unidad en cada formulario y en otras unidades de su proyecto.

Realmente no entiendo por qué querrías usar nombres de carpetas tan crípticos.No se me ocurre ninguna razón por la que querrías hacer esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top