Ver Mensaje Individual
  #2  
Antiguo 25-02-2016
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.285
Reputación: 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 pablopessoa Ver Mensaje
Supongamos que hago una aplicacion (VCL Form Application) que va a representar un menu principal de una biblioteca. Cada boton del menu, carga una accion, por ejemplo "Ver Libros" (un simple listado de libros).
Ahora supongamos que para modularizar, cada accion del menu, representa un Package.
Entonces si apreto el boton "Ver Libros", cargo en pantalla el packete que tiene toda la funcionalidad referente a esa accion.
Para esto, cree un VCL Form Application "Proyect1" con la siguiente interface:
No es algo complicado, simplemente se trata de tener algunos conceptos claros.
Algunas cosas a comentar.

(1) Se puede trabajar con package y cargarlos de forma dinámica o estática.
Imagino que tu caso, que es el más sencillo y habitual, es el segundo (carga estática). Si quieres saber más sobre la diferencia entre ambos puedes revisar esta entrada en mi web donde se explica con ejemplos.

(2) Una vez compilado tu package con el formulario dentro, debes:
a) Añadir el DCP a las opciones del proyecto (es la parte que se usa en diseño).
b) Tener accesible el fichero BPL cuando ejecutes el proyecto (lo normal es tenerlo en el mismo directorio) porque es el que necesitas en ejecución.


Cita:
Empezado por pablopessoa Ver Mensaje
Instale el Package en mi VCL Application y se instalo correctamente:
No es necesario que instales el package creado. Es un package de ejecución. Si no tiene componentes que necesites ver en la paleta puedes trabajar con el sin instalarlo.
Fíjate que en las opicones de tu package puedes definirlo como de "runtime", de "designtime" o de ambos. en tu caso y con lo que incluye hasta ahora, basta con que sea de "runtime".




Cita:
Empezado por pablopessoa Ver Mensaje
Ahora lo que quiero, es que mi Package (es decir, el grid) aparezca en el Panel que tiene la VCL App al apretar el boton "Ver Libros".
Pero por mas que pruebo codigos que encuentro en internet, no logro hacer que la grid del Package se cargue en el Panel blanco de mi VCL App.
(3) Para esto, basta con que añadas el package (DCP) a las opciones del proyecto en la parte "Build with runtime packages"

(4) Luego puedes llamar al form del package de la forma estandard, con un código como este.

Código Delphi [-]
  // Crearlo
  FormPackage := TFormPackage.Create(Application);
  // definirlo sin borde
  FormPackage.BorderStyle := bsNone;
  // Ajustarlo al panel
  FormPackage.ParentWindow := Self.pnlDestino.Handle;
  // Que ocupe todo el espacio del panel
  FormPackage.Align := alClient;
  // Visualizarlo
  FormPackage.Show;

Añado al FTP un ejemplo con el proyecto y el package.

Una imagen:


__________________
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