Cita:
Empezado por pablopessoa
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
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
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
[-]
FormPackage := TFormPackage.Create(Application);
FormPackage.BorderStyle := bsNone;
FormPackage.ParentWindow := Self.pnlDestino.Handle;
FormPackage.Align := alClient;
FormPackage.Show;
Añado al FTP
un ejemplo con el proyecto y el package.
Una imagen: