Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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
Yo también me apunto a eso.
¿Cómo has obtenido la referencia de la clase que hay en el package dinámico?
__________________
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
  #2  
Antiguo 07-03-2007
AFilth AFilth is offline
Miembro
 
Registrado: ago 2005
Posts: 119
Poder: 21
AFilth Va por buen camino
Vamos alla con la explicación, lo intentaré lo mejor que pueda aunque es algo que no he implementado yo y lo mismo meto la pata por algún lado...

Por una lado tengo mi proyecto principal, desde donde hago el
Código Delphi [-]
SetObjectProp(MiObjeto, 'Propiedad', Valor);

Por otro lado tengo una bpl en la que está la ClaseA, esta bpl no se carga dinámicamente.

Y finalmente tengo otra bpl que se carga dinámicamente con la ClaseB, esta clase hereda de la ClaseA, ya que en su uses hace referencia a las units de la bpl donde está contenida la ClaseA.

Normalmente en la aplicación se cargan objetos de la ClaseA, pero cuando se cumplen una serie de condiciones, se carga la BPL donde está contenida la ClaseB y en vez de crearse los objetos de ClaseA se crean de ClaseB.

Bueno, ahora empieza lo difícil, a ver si soy capaz de explicarlo bien...

En mi bpl donde está contenida la ClaseA se hace lo siguiente:
Código Delphi [-]
PClaseA= class of ClaseA;
VAR
TClaseN: PClaseA;

y luego:
Código Delphi [-]
initialization
  TClaseN := ClaseA;

La bpl donde está contenida la Clase B (la que era dinámica) hace:

Código Delphi [-]
PClaseB= class of ClaseA;
VAR
TClaseN: PClaseB;

y luego:
Código Delphi [-]
initialization
  TClaseN := ClaseB;

Luego en todos los Creates y demás métodos, como son override lo que se usa es El TClaseN.Create. Así se consiguen crear objetos de una clase o de otra dependiendo de las circunstancias.

Por lo tanto cuando yo, desde mi proyecto principal hago referencia a un objeto, éste puede ser en realidad de ClaseA ó de ClaseB dependiendo de si se cargo la bpl dinámica ó no.

Espero haberme explicado más o menos con claridad, aunque no sé yo porque ni yo mismo lo entiendo demasiado bien...

Un saludo.
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
Usar una clase que esta dentro de una libreria lookmydoom OOP 3 18-04-2006 15:25:34
Obtener el directorio donde está el ejecutable daly Varios 3 13-10-2005 19:29:18
Propiedad que me indica si un DBMemo está vacio gluglu Varios 4 10-02-2005 16:48:17
Una clase como propiedad de un componente? setry2 OOP 3 30-12-2003 21:30:58
Obtener la clase de objetos Feñiz OOP 7 08-05-2003 20:21:55


La franja horaria es GMT +2. Ahora son las 10:53:13.


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