Ir al contenido


Foto

BPL y Sección Heredable


  • Por favor identifícate para responder
8 respuestas en este tema

#1 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 24 febrero 2010 - 08:01

Saludos.

Esta pregunta puede que parezca sencilla, pero para mi es un poco complicada.  Estoy incursionando en los BPLs y tengo este pequeño problema.

Sucede que mi dichoso FrameWork lo he puesto dentro de un BPL, ahora estoy creando un proyecto donde voy a poner en producción al "dichoso", al estar el "dichoso" en BPL pense que mi nuevo ejecutable estaría "limpio" de todas esas unidades y simplemente me limitaría a crear las nuevas unidades pertenecientes al mismo.

Pues cuando voy a la sección Heredable osea File -> New -> Other dentro del dialogo la opción Inheritable Items esta me aparece deshabilitada sin objetos a heredar.

Viendo esta situación me veo forzado a tener que agregar parcialmente el FrameWork al ejecutable para poder visualizar las unidades a heredar.  Entonces ¿Porque se da esto? ¿Como puedo solucionarlo? ¿Es la única manera de resolverlo, agregando las unidades al ejecutable?

Anticipo la respuesta a esta pregunta (no se cargan dos veces), pero quiero su confirmación ¿Si ambas unidades están tanto en el ejecutable como en el BPL se cargan las veces que este presente?

Gracias
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 24 febrero 2010 - 08:36

Cuando usas paquetes no necesitas incluir a la unidad en el library path, ya que al cargar el paquete esta se hace accesible a la aplicación.

los paquetes yo los uso de la siguiente manera:

1 - Creo un paquete conteniendo mi Formulario base. Este formulario contiene las definiciones base que compartiran todos los formularios de mi aplicación. Algo como el paso de valores entre formularios, implementación de una clase usuario y otra clase seguridad etc

2 - Cada formulario que uso en mi aplicación lo heredo del formulario base. Al meter cada formulario a su respectivo paquete incluyo en el require el DCP del paquete que contiene mi formulario base.

3-En el formulario principal solo incluyo en mi uses la unidad que contiene la definición de mi formabase, luego al cargar el paquete de un formulario en particular, instancio a partir de mi forma base el formulario contenido en él.

Eso optimiza no solo código sino recursos.


Saludos.
  • 0

#3 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 24 febrero 2010 - 08:42

Saludos.

Poliburro gracias, es lo que ando buscando.

En mi caso, que se escapo explicar, originalmente cree un paquete (Design and RunTime) para crear/registrar unas acciones y dicho paquete necesita de unidades del FrameWork.

Cuando fui a crear un nuevo paquete (RunTime only) con las unidades del FrameWork, Delphi me decía que tenía que remover las unidades porque ya estaban contenidas en el paquete de las acciones, viendo esto, procedí a agregar al paquete de acciones todas la unidades del FrameWork y dicho paquete usarlo en el nuevo proyecto.

Pues ahí es donde radica mi problema, que no puedo heredar las unidades pertenecientes al paquete, porque no me salen en Inheritable Items ¿Cómo puedo solucionar esto?
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 24 febrero 2010 - 09:02

Saludos.

Poliburro gracias, es lo que ando buscando.

Cuando fui a crear un nuevo paquete (RunTime only) con las unidades del FrameWork, Delphi me decía que tenía que remover las unidades porque ya estaban contenidas en el paquete de las acciones, viendo esto, procedí a agregar al paquete de acciones todas la unidades del FrameWork y dicho paquete usarlo en el nuevo proyecto.


Eso sucede por que el paquete contiene en sus requires esas unidades y además delphi en el library path apunta al directorio donde están localizados los DCU.

Para solucionar eso yo hago lo siguiente:

Defino un directorio llamado BIN y a ese redireciono la salida de los binarios de cada paquete. Luego en el search path de cada paquete incluyo ese directorio. De esa manera evito que delphi encuentre en más de un directorio los DCU de las unidades y además evitando el error que te mostró.



  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 24 febrero 2010 - 10:02

Saludos.

Poliburro, la pregunta es ¿Puedes ver tu formulario base para heredarlo? sin agregarlo al proyecto del ejecutable, osea que solo este en el BPL.
  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 24 febrero 2010 - 10:26

Saludos.

Poliburro, la pregunta es ¿Puedes ver tu formulario base para heredarlo? sin agregarlo al proyecto del ejecutable, osea que solo este en el BPL.


No amigo, de hecho mi formulario base no contiene el frm sino solo la definición de clase.

  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 24 febrero 2010 - 10:30

Hola amigos

Estoy leyendo sus comentarios y me parece muy interesante este asunto ya que soy un neófito en este tema (bueno en casi todos los temas)

Por ahí recuerdo que una personita estaba desarrollando un tutorial de creación de bpl's :)

Salud OS
  • 0

#8 pcicom

pcicom

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 267 mensajes
  • LocationMéxico

Escrito 24 febrero 2010 - 07:51

Que onda mi POLI..

Viendo que eres un master en el uso de los BPL...  seria chido para que nos pongas un minicomo crear aplicaciones usando BPL propias...

Siempre y cuando tengas tiempo y la RAZA secunde esta idea...


SALUDOS..

  • 0

#9 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 640 mensajes
  • LocationLos Mochis

Escrito 25 febrero 2010 - 12:47

Yo lo que hago es crear un grupo al que le agrego el proyecto en desarrollo y la bpl con mis formas base con esa ya me las encuentra al heredar de ellas sino me sale un mensaje de clase no encontrada.


Saludos
  • 0




IP.Board spam blocked by CleanTalk.