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
  #3  
Antiguo 24-08-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Poder: 0
adlfv Va por buen camino
Gracias, pero sigo teniendo problemas :(

Muchas gracias por tu ayuda.

Efectivamente, me faltaba exportar la función BD, pero sigo teniendo problemas... Te cuento...

El DataModule de datos (DMDatosZeos) lo utilizo en:

· Los paquetes (pero al ponerlo en la cláusula requires, no hay problema y lo puedo ver).
· El programa principal. Esto es lo que me está volviendo loco . Como el programa principal utiliza _BD, tengo que agregar al proyecto UBD, pero es sólo para "engañar" al compilador y para que logre compilar, pues el objeto como tal reside en el paquete... Pero que pasa, que la referencia de _BD del programa tengo que hacer que apunte a la referencia de _BD del paquete, pero no logro hacerlo... Es raro que los ejecutables no tengan una clausula requires o algo así cuando trabajan con paquetes... Eso me evitaría todos estos problemas.

Para hacer la asignación de _BD del principal a _BD del paquete he probado con :=, con Assign, incluso haciendome un metodo de asignación que asigne también las otras propiedades como el DataModule, y la conexión, y nada de nada... Depuro mostrando mensajes con las direcciones de los punteros Format('@_BD=%p', [@_BD]) y cosas así, y hay referencias que no me salen iguales en el principal y en el paquete...

Extrapolando mi problema a tu código fuente, sería algo así: en mi caso tengo que agregar CPrueba.pas al proyecto prueba.exe pues en ese se utiliza la base de datos, con lo cual tengo 2 objetos _Prueba, uno en el paquete y otro en el programa, el del paquete es el que se crea en realidad, pero el del programa debe apuntar (incluidos todos los campos métodos y todo) al del paquete (es decir debe ser como una copia exacta, pero sin ser copia, pero sin ser copia, pues la base de datos es común). Cómo puedo hacer esto?

Tal vez deba distinguir si el código de UBD es el del ejecutable o el del paquete mediante alguna directiva IFDEF (o algo así) pues dicha unidad es compartida a los paquetes y al ejecutable algo así como:
Código:
  {$IFDEF PROJECT=BD.BPL}
    ShowMessage('Estoy en el paquete');
  {$ELSEIF PROJECT=PRINCIPAL.EXE}
    ShowMessage('Estoy en el ejecutable');
  {$ELSE}
    ShowMessage('Estoy PERDIDO!!!');
  {$IFEND}
La verdad no tengo de cómo hacerlo, no he podido conseguir nada sobre esta directiva (o si existe algo similar) ni en la ayuda, ni en internet...

Muchas gracias por tu ayuda, te lo agradezco de verdad.

Y gracias a todos los que se han molestado en leer todo este rollo...

Un cordial saludo a todos.
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


La franja horaria es GMT +2. Ahora son las 11:51:37.


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