2010-09-07 16 views
19

¿Cómo establecer "Directorios/Condicionales" en Opciones de proyecto y la ruta "Biblioteca" en Opciones de entorno? La ayuda de Delphi no dice mucho sobre estos ajustes muy importantes. Tengo todo tipo de errores extraños debido a las dependencias incorrectas entre mis VCL.Cómo establecer correctamente la ruta "Directorios/Condicionales" y "Biblioteca"

1.

que se han fusionado un gran conjunto de controles de 3 ª parte de un paquete llamado ThirdPartyPackages_D7.dpk. Esto es útil cuando reinstalo Delphi porque no tengo que volver a instalar todas las VCL de terceros cada año.

Luego, tengo mis propios controles en MyControls_D7.dpk que depende de ThirdPartyPackages VCL. También tengo otro paquete BlgPackage.dpk que depende de MyControls.

Al final de la cadena está mi aplicación (proyecto DPR) que está utilizando los controles en BlgPackage.

ThirdPartyPackages.dpk -> MyControls.dpk -> BlgPackage.dpk -> MyApplication.dpr 

cuando cambio/editar algo para el segundo paquete (MyControls.dpk) y generar la aplicación de la RDP, funciona. El compilador ve los cambios realizados en ese paquete. Sin embargo, si cierro el proyecto y cargo y compilo BlgPackage, arroja un desagradable mensaje de que la función xyz no se puede encontrar en MyControls porque la elimino (he cargado las unidades MyControls en IDE en paralelo con las unidades de la aplicación). Parece que la creación de la aplicación solo actualiza los archivos DCU para todos los paquetes usados, pero no para los archivos DCP/BLP.

¿Cómo escribo y compilo el código en los paquetes sin cargar explícitamente los paquetes en el IDE y construirlos? (Nota: Tengo un error desagradable que no me permite cambiar entre proyectos sin necesidad de reiniciar el IDE o para cargar un grupo de proyectos/paquetes (*) .bpg al mismo tiempo.)

2.

Otro problema es que quiero almacenar los archivos compilados (DCP/BPL/DCU) de un paquete en su carpeta (por ejemplo c: \ MyProjects \ Blg).
Si configuro las carpetas "Directorio de salida", "Directorio de salida de unidad" y "Directorio de salida DCP" del paquete BlgPackage en su carpeta, no solo se almacenarán sus archivos BPL/DCU/DCP, sino también los archivos BPL/DCP de MyControls se almacenará allí. ¿Cómo puedo tener los archivos binarios de cada paquete en una carpeta separada?


Delphi 7, Windows XP, todos los proyectos puestos en "Reconstruir como sea necesario"

Respuesta

1

mi solución (un poco sucio, pero bueno funciona):

pongo todo libraries.controls 3 ª parte en un solo paquete (un super-paquete). Puse todos mis controles en un solo paquete.

Ahora, cuando migro los paquetes a una PC diferente, todo lo que tengo que hacer es copiar/pegar dos carpetas y establecer dos rutas.

Funciona para mí - otros pueden no estar de acuerdo y no puedo culparlos. Culpo a los 'diseñadores del infierno' de Borland/Embarcadero. Si miras en StackOverflow verás que hasta ahora nadie proporcionaba una solución elegante para esto.

4
  1. Usted debe compilar explícitamente paquetes - sólo la compilación de archivos de paquete no es suficiente y, como usted ha notado conduce a problemas . En las versiones modernas de Delphi puede crear un grupo de proyectos (no estoy seguro sobre Delphi 7) que contenga una aplicación y paquetes que quiera desarrollar con la aplicación, y puede cambiar fácilmente entre ellos y compilar paquetes sin necesidad de cerrar/volver a abrir la aplicación .

  2. BlgPackage no debe tener un acceso a fuentes de paquetes MyControls (a través del camino "biblioteca" o utilizando el mismo directorio), se debe acceder solamente ya compilado paquete MyControls, de lo contrario los archivos de MyControls se compilan cada vez que genere BlgPackage y los archivos compilados se almacenan en el directorio BlgControls DCU


AÑADIDO

El camino "Biblioteca" debe conducir a archivos compilados (.dcp, .dcu) y (si es necesario) archivos de recursos (.res, .dfm) solamente: es suficiente para compilar aplicaciones y paquetes que requieren el paquete "MyControls". Puede configurar el directorio para los archivos compilados directamente en la configuración del paquete, y debe copiar los archivos de recursos (si los necesita) en el mismo directorio manualmente. Este directorio debe incluirse en la ruta "Biblioteca", o puede utilizar un directorio ya incluido en la ruta "Biblioteca".

La ruta de "Biblioteca" no debe conducir a archivos fuente (.pas) si no desea que estos archivos se compilen cada vez que compila BlgPackage o una aplicación que requiera el paquete "MyControls".

+0

@ Serg-No creo que el No2 funcione.La ayuda de Delphi 7 dice esto: "Si intentas construir tu paquete con un archivo que no está en la ruta de la biblioteca, recibirás un error de compilación". Por lo tanto, no podré compilar mi paquete si elimino su ruta de la Biblioteca. – Ampere

+0

Lo hice y ahora no puedo compilar el proyecto. No puedo encontrar una de las DCU. Esa DCU pertenece a MyControls. Está ubicado en la misma carpeta donde están los archivos PAS MyControls. – Ampere

+0

@Altar - almacenar .dcu en la misma carpeta que .pas es una mala práctica y debe evitarse. DCU debe estar disponible a través de la ruta "Biblioteca", mientras que las fuentes (.pas) normalmente no lo son. En cualquier caso, puede copiar manualmente la DCU que causa problemas en la carpeta disponible a través de la ruta "Biblioteca", si por alguna razón no desea establecer la ruta DCU en las opciones del paquete. – kludg

3

Utilizo una forma mucho más simple para los componentes de 3 ª parte y la reinstalación de Delphi.

  • Abrir regedit y encontrar [HKEY_LOCAL_MACHINE/SOFTWARE/Borland/Delphi/xxx] donde xxx es la versión y exportación de toda rama.
  • Abra el archivo y elimine las claves LMKEY, LMLIC.
  • Copiar C: \ Archivos de programa \ Borland \ Delphi x \ Projects \ carpeta de BPL a otra ubicación
  • Copiar C: \ Archivos de programa \ Borland \ Delphi x \ importaciones a otra ubicación
  • Volver a instalar Delphi incluyendo las actualizaciones y GExpert
  • Importar registros guardados anteriormente
  • Restaurar BPL y las importaciones de carpetas

y whoala, Delphi está de vuelta con todos los componentes partie 3ª y la configuración del IDE. La única limitación es que todos los componentes deben residir en la misma carpeta antes y después de reinstalar Delphi.

Esto también restaura la configuración de TeamSource. Si también está reinstalando Windows, asegúrese de hacer que el usuario de Windows tenga el mismo nombre de usuario que antes.

+0

Estoy usando este 'hack' durante años. Gracias de cualquier manera. +1 como otros pueden usarlo. PD: No olvide la clave HKCU (misma ubicación:/SOFTWARE/Borland/Delphi/xxx). Supongo que LMKEY es HKLM, pero ¿qué es LMLIC? – Ampere

+0

LMKEY y LMLIC son información de licencia sobre Delphi y si los restaura también, Delphi pensaría que no tiene licencia o algo así. –

Cuestiones relacionadas