Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2016
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Como Usar Custom Package?

Hola gente!
como podran ver en mi perfil, hace muuuucho tiempo que no programaba en Delphi. Decidi retomar la vieja costumbre e instale Embarcadero XE8 como para practicar realizar aplicaciones para tablets.
Antes de comenzar con eso, decidi practicar como modularizar una aplicacion, por ejemplo:

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:



y cree un package que solo contiene un grid:


Instale el Package en mi VCL Application y se instalo correctamente:


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.
Apelo a su ayuda, cualquier sugerencia sera muy agradecida.
Pido disculpas por lo largo del post pero intente ser lo mas claro posible en mi problema y contar que cosas habia intentado.

Saludos!
Responder Con Cita
  #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.233
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 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
  #3  
Antiguo 25-02-2016
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Netfali , justamente todo el caso que arme para probarlo se baso en tu post en tu pagina

Tengo que serte sincero.. me quede absolutamente sorprendido con tu predisposicion en responder mi pregunta.
mi intencion era detallarlo con imagenes para que se vea que no pregunto sin antes haber antes probado nada por mi mismo, pero tu respuesta es totalmente fuera de serie.

ni bien llegue a mi casa voy a probar todo lo que me dijiste.
Hasta hiciste un GIF con un ejemplo basado en mi caso!! increible...
te agradezco MUCHISIMO tu buena voluntad y de verdad me pone feliz saber que existe gente con tantas ganas de ayudar a un desconocido.

te tengo al tanto en este post sobre cualquier novedad y nuevamente, mil gracias!

Saludos!!
Responder Con Cita
  #4  
Antiguo 26-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.233
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 pablopessoa Ver Mensaje
Netfali , justamente todo el caso que arme para probarlo se baso en tu post en tu pagina
Entonces tiene que funcionar seguro...

La verdad es que quería probar una cosa relacionado con el tema que estabas comentando así que en vez de hacer otro, hice el ejemplo que comentabas. Luego he continuado con él.
__________________
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
  #5  
Antiguo 26-02-2016
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Me resulta muy util esta metodologia, por eso queria practicarla, en cuanto tenga el ejemplo bien avanzado trato de subirlo para otros que lo necesiten.
El problema es que esto lo hago por hobbie, entonces a veces el tiempo que puedo dedicarle es corto, sumado a que mi hijo tambien demanda tiempo.
entonces de este modo, uno puede "diagramar" un esquema de desarrollo en partes mas chicas, con menos demanda de tiempo y despues unirlo.
De paso queda modularizado, haciendo posible que aplicar correciones y updates al programa sea mas sencillo ya que el procesamiento de los modulos queda acotado a funciones simples.

Saludos!!!
Responder Con Cita
  #6  
Antiguo 26-02-2016
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Perdoname que te moleste, pero cuando bajo el ZIP adentro solo hay una carpeta vacia :S
Responder Con Cita
  #7  
Antiguo 28-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.233
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
Tienes razón.
No se que ha pasado.
El Lunes lo busco y te lo vuelvo a subir.
__________________
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
  #8  
Antiguo 29-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.233
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
Lo he vuelto a subir, esta vez completo.

Un saludo.
__________________
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
  #9  
Antiguo 29-02-2016
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Ahora si puedo verlo completo.
Mil gracias!!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
custom MessageDlg coso Trucos 1 02-07-2008 18:04:50
Como se llama a un package jlcasih Oracle 2 06-09-2006 23:58:57
Como incluyo un package en un proyecto. zugazua2001 Varios 1 14-06-2005 22:04:11
Impresion Custom tbolzan Impresión 2 15-09-2004 17:38:18


La franja horaria es GMT +2. Ahora son las 16:37:07.


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