Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2007
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Herencia de formularios entre Packages

Hola a todos!!

Estoy intentando modularizar mi aplicación y así poder reutilizar la jerarquía de formularios entre diversos proyectos.

Tengo una jerarquía de herencia de formularios de unos 4 o 5 niveles (por ejemplo: TForm -> TFrmBase -> TFrmChild -> TFrmMante...)

Ahora quería poner estos formularios dentro de una bpl (paquete o package) para que desde otro package poder llamarlos.

Pero no logro hacerlo.

El primer problema es que así no tengo forma de añadir nuevos forms heredados al nuevo paquete. Así que tuve que añadirlos al repositorio.

Ahora, cuando creo un nuevo form me añade toda la jerarquía de forms al nuevo paquete. Pero no es lo que quiero, ya que estos forms están en el primer paquete bpl.

¿Alguna idea o sugerencia para mejorarlo?

Muchas gracias!
Responder Con Cita
  #2  
Antiguo 18-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No entiendo cual es el problema. Te adjunto un ejemplo donde se muestra cómo crear dos packages diferentes con un formulario en cada uno y de los cuales uno deriva del otro.

Creo que es lo que necesitras y no veo dónde está el problema.
Archivos Adjuntos
Tipo de Archivo: zip Herencia de Packages.zip (8,7 KB, 79 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 18-05-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
El ejemplo que Neftali te muestra es correcto, pero escribo solo para resaltar el hecho de que observes en ese ejemplo que el paquete Base esta referenciado en la sección Required de el paquete Derivado y de esa manera no debe haber problema... A menos de que haya una especie de referencia ciclica entre las unidades que estas usando.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 18-05-2007
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Gracias a ambos en responder!

Ya he visto cual era mi problema. Yo tengo los dos paquetes, como los del ejemplo. Pero cuando se abre el paquete derivado en Delphi, sin tener abierto en un ProjectGroup el paquete base, al abrir el formulario da error.

Bueno, la solución al error es tener un ProjectGroup con todos los paquetes necesarios y no pretender como yo abrir tan sólo el paquete derivado.

Me sigue quedando una duda (no sé como hacerlo). ¿Cómo creo un nuevo formulario heredado en el paquete Derivado desde el IDE de Delphi? ¿Es posible?
Responder Con Cita
  #5  
Antiguo 18-05-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por DarKraZY
Me sigue quedando una duda (no sé como hacerlo). ¿Cómo creo un nuevo formulario heredado en el paquete Derivado desde el IDE de Delphi? ¿Es posible?
Según lo que entendí de tu pregunta, pues solo bastaría con hacer click en el botón New del Project Manager, seleccionar la pestaña que tiene el nombre de tu proyecto, luego el form que quieres heredar, verificar que de los Radio Botones que están abajo este seleccionado el de Inherit y por ultimo presionar Ok.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 18-05-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por DarKraZY
Me sigue quedando una duda (no sé como hacerlo). ¿Cómo creo un nuevo formulario heredado en el paquete Derivado desde el IDE de Delphi? ¿Es posible?
Aunque se puede hacer "a mano" cambiando la clase Base en el PAS, lo más sencillo es que añadas el form Base al repositorio, como antes comentabas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 21-05-2007
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Cita:
Empezado por jhonny
...hacer click en el botón New del Project Manager, seleccionar la pestaña que tiene el nombre de tu proyecto, luego el form que quieres heredar...
Este método sería muy complicado, ya que debo "activar" el proyecto base para poder heredar el formulario, entonces se agregaría al proyecto base y sería más costoso hacer los cambios entre packages.

Cita:
Empezado por Neftali
se puede hacer "a mano" cambiando la clase Base en el PAS
Cita:
Empezado por Neftali
que añadas el form Base al repositorio
La del repositorio es la mejor opción, aunque cuando se recompila el package avisa y elimina las unidades repetidas que agregó automáticamente.

Pues nada, ya tengo claro lo que quería hacer. Gracias a ambos por las respuestas. Es curioso que no haya a día de hoy (porque supongo que en Delphi 2007 será igual) una forma rápida y correcta de hacer esto. Ya que creo que es la mejor forma de poder reutilizar los formularios en multitud de proyectos.

Saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conexión entre formularios mcalmanovici Varios 3 23-06-2006 15:48:06
Mensajes entre formularios Ju2an Varios 2 15-06-2006 19:13:09
analizador de dependencias entre packages Walter Roccaro Varios 1 07-04-2006 15:20:12
Valores entre formularios mdi ctronx Varios 5 16-06-2004 22:19:01
herencia entre paquetes Nidia H. Ochoa OOP 9 26-02-2004 17:08:07


La franja horaria es GMT +2. Ahora son las 21:27:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi