Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 13-09-2019
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: 19.449
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
Se me hace complicado con tantos datos y nada concreto hacerme una idea.
Si no te importa (y cogiendo un ejemplo de la primera referencia que has hecho) adjunto un proyecto sencillo sobre el que hacer las pruebas.

Se trata de un grupo de proyectos formado por:
(1) Un Package (restas) que contiene una unit con funciones (URestas) y un formulario (UMain).
(2) Una aplicación con 2 botones. Uno llama a la función contenida en (URestas) y otra abre el form contenido en (UMain)

Las formas de generar la aplicación serían:

OPCION 1: Un único EXE (sin packages)
Basta con que desde la aplicación principal estén accesibles todas las units y en la configuració marcar:
"Link with runtime packages" a FALSE



Y en el path de búsqueda he añadido el directorio donde están las units del package (Restas) para que las encuentre.





==> Esto genera un EXE de un poco más de 2MB. El compilador coge todas las units que necesita (que están en los USES) y las añade a la aplicación.

Si revisamos en EXE con un editor de recursos, podemos ver tanto el formulario de la aplicación como el formulario UMain están incluidos. Es correcto, porque queremos una aplicación (EXE) que lo contenga todo.






Si comprobamos la dependencias del EXE veremos que no necesita ninguna BPL, cosa que también es correcto.





OPCION 2: EXE + BPL (carga estática)


En este caso empezamos compilando el Package (Restas). He cambiado la configuración de este package para que el BPL y el DCP resultante vayan a parar al mismo sitio donde se genera el EXE (no es obligatorio, pero en este caso facilita las cosas).




==> Esto genera un fichero BPL de 38KB

Si revisamos el contenido vemos que contiene el formulario (UMain), como es lógico.




Ahora cambiamos la configuración de la aplicación (sólo necesitamos cambiar la configuración) para que compile con package.
Activamoes el flag "Link with runtime packages" a TRUE y añadimos el packages Restas.




Compilamos la aplicación.


NOTA IMPORTANTE: Al decirle que use el Packages Restas, como el programa sabe qué contiene ese package, lo que va a hacer es que cuando encuentre en un USES la unit URestas y el formulario UMain, NO LOS VA A AÑADIR AL EXE, porque sabe que en ejecución los va a encontrar dentro del package (Restas).

==> Vemos ahora que el EXE resultante ocupa 36KB (era lógico que ocupara mucho menos; Ahora no contiene ni lo del package Restas ni lo de la VCL).

Si revisamos el EXE vamos que ahora NO contiene el formulario UMain del package Restas (sólo tiene uno a diferencia de la generacion anterior).




Si miramos las dependencias del EXE ahora aparecen los packages que necesita para funcionar (Restas.bpl, rtl250.bpl, vcl250.bpl). estos package se DEBEN DISTRIBUIR con la aplicación de forma obligatoria para que funcione.




Si sigues los pasos, deberías poder generar la aplicación con los 2 escenarios.


Tus dudas están en el segundo caso, pero como has visto, a la hora de programar no hay que hacer NADA DIFERENTE. El código no cambia y lo único que hacemos es poner las cosas (formularios y Units) en lugares diferentes.


La aplicación principal en el trabajo del día a día debe tener acceso a todos los formularios y units (sean DCUs o PAS), pero cuando finalmente se compilan y se linkan los paquetes y la aplicación, Delphi conoce lo que hay en cada Package y NO LO AÑADE a la APP principal, sino que guarda una referencia de a qué BPL debe ir a buscarlo.
Archivos Adjuntos
Tipo de Archivo: zip Carga estatica Packages.zip (13,5 KB, 9 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
 



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
Creacion de Indices en ejecucion javicho_villa Impresión 1 29-09-2005 06:27:21
Problemas con creacion de obj en ejecucion mbcito OOP 4 21-01-2005 18:18:12
Creacion de formulario en ejecucion Remp OOP 5 22-04-2004 19:14:15
Creación de tabla en tiempo de ejecución sledgehammer Conexión con bases de datos 3 16-09-2003 15:08:01
Creacion de componente en tiempo de ejecución cone220 OOP 1 16-09-2003 03:47:16


La franja horaria es GMT +2. Ahora son las 11:52:20.


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