Pregunta

Estoy desarrollando un paquete de IDE-componentes registrados, la mayoría de los cuales se derivan de una base de TFrame clase.También hay varios de diálogo personalizado formas que son llamados por estos componentes, incluido en el paquete.Estoy trabajando en Delphi 2007.

Estoy notando que a veces la trama y la forma de las unidades, que normalmente tienen asociado un archivo DFM, no siempre muestran la DFM archivo "debajo" (accesible a través de la pequeña [+] treeview nodo expansor) por debajo de ellos.Si puedo añadir un formulario existente basado en PAS de archivo, por ejemplo, a través de un clic derecho sobre el proyecto BPL (en el Administrador de Proyecto) -> Añadir, que no muestra el archivo DFM en el listado.

Si puedo Añadir Nuevo, sin embargo, y crear un nuevo formulario o unidad de estructura en el proyecto, se muestra como el típico anidado de dos elemento archivo en el Administrador de Proyectos.También se muestra de esa manera si me arrastre un formulario existente de otro proyecto en el Grupo de Proyecto para este BPL proyecto en cuestión.

Parece que esto debe ser coherente, y yo prefiero los dos archivos que muestra cuando la unidad es un Marco o Forma.

Es esto indicativo de que algo anda mal en el archivo de proyecto?Estoy añadiendo las formas existentes/marcos a este paquete de forma incorrecta?Si es así, ¿cómo debo agregar formulario existente/marco unidades para que ambos archivos muestran en el Administrador de Proyectos listado?

* ACTUALIZACIÓN *

De Alen la sugerencia que aparece a continuación:

He intentado añadir el {$R *.dfm} directiva a la forma de la unidad, y no la fuerza de la DFM archivo para mostrar al agregar a mi BPL paquete/proyecto.La Adición De {$R *.dfm} en el archivo de proyecto (que creo que no es lo que quiso decir, pero pensé que me gustaría probar es) no funciona tampoco.Esta técnica sólo trabajo con proyectos de EXE?

Posiblemente (probable) relacionados, tratando de construir con la directiva en lugares me da esto:

[DCC Error] E2161 Advertencia:De recursos duplicados:Tipo 10 (RCDATA), ID TTESTTREEVIEW;Archivo E:\Projects\MyApp\Components TestTreeViewFrame.dfm recursos mantenidos;archivo E:\Projects\MyApp\Components TestTreeViewFrame.dfm recursos desechados.

"Keping" y "descartar" el mismo archivo??


Más tarde:Parece que este "recurso duplicado" problema PODRÍA estar relacionado con este.No es seguro, pero al menos en una instancia ambos ocurrieron al mismo tiempo.

¿Fue útil?

Solución

Vegar está en el camino correcto.Para que el gerente de proyecto para mostrar el .dfm nodo, es necesario saber que un form/frame/datamodule se asocia con el pas de archivo.Se ve en el {Form1} comentario en la .dpk o .el dpr de archivo de esta información.Si, al agregar un archivo al proyecto, el IDE no reconoce que hay un .dfm asociados con ella, asegúrese de que el .pas archivo tiene el {$R *.dfm} directiva en el claro.Por eso, yo no debería estar enterrado en un IFDEF o de lo contrario, oscurecida por los posibles errores de sintaxis en el archivo.El IDE utiliza la presencia de la presente directiva para decidir si se debe o no se debe de intentar abrir la .dfm en el diseñador.

El IDE no sólo se da por descontado que si hay un Unit1.pas y un Unit1.dfm, que son realmente supone para estar juntos.Considerar que creó una nueva forma de unidad y fue llamado Unit1.Ahora eliminado justo el Unit1.pas y luego simplemente se fue y creó una nueva unidad que será dado el nombre Unit1.pas.No hay ninguna referencia a la antigua, obsoleta Unit1.dfm hay en el disco de esta nueva, la misma base de nombre, Unit1.pas.Sería extraño y confuso si el IDE solo ciegamente abierto que .dfm.

Otros consejos

Si usted echa un vistazo a la fuente del proyecto para el paquete, usted encontrará una diferencia en el contenido de la sección:

contains
  Unit2 in 'unit2.pas',
  Unit1 in 'Unit1.pas' {Form1};

Unit2 se muestran como una sola unidad, y unit1 se mostrará como una unidad con un formulario.Como se puede ver, unit1 tiene un {Form1} comentario que unit2 carece.

No sé si es posible añadir una unidad ya existente, de modo que este comentario se genera automáticamente.

Otra razón por la que la persona que está en busca de otra solución es cuando cambia el nombre de pas archivo de cerrar todos los archivos y volver a abrir.La versión anterior se abrir & debe ser eliminado con el anteriormente nombrado agregado al proyecto

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