Ver Mensaje Individual
  #4  
Antiguo 24-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Reputación: 19
jmariano Va por buen camino
Saludos otra vez!

No entiendo el porqué duplicas ambos objetos (es decir, porqué has de tener el objeto _BD en el principal y en el paquete) si desde el principal puedes usar el objeto _BD del paquete (sin tener que pasar la referencia de un objeto a otro).

Seguramente tu problema sea que quieres usar el objeto _BD del paquete desde el mismo archivo de proyecto .dpr. Para hacer esto lo único que tienes que hacer es especificar el unit "UBD" (donde se encuentra declarado el objeto _BD) en la cláusula "uses" del .dpr pero sin añadir "UBD" al proyecto (porque si lo añades, entonces, no usará el del paquete).

Siguiendo con el ejemplo que te mandé, el .dpr quedaría así para usar _Prueba desde el principal:

Código Delphi [-]
program Prueba;
uses
  Forms, CPrueba {especificamos sólo el unit donde se declara el objeto},
  FPrincipal in 'FPrincipal.pas' {frmPrincipal};
 
{$R *.res}
 
begin
  Application.Initialize;
  
  { Para probar añade el método "Mensaje(Msj: string)" a la clase TPrueba
    que se encuentra en el paquete "BDPRueba" }
  _Prueba.Mensaje('Hola');
 
  Application.CreateForm(TfrmPrincipal, frmPrincipal);
  Application.Run;
end.

(El ejemplo mostraría el mensaje "Hola" antes de mostrar el formulario principal).

Como te comenté antes, no añadas "CPrueba" al proyecto Prueba.exe para que utilice el objeto _Prueba del paquete "BDPrueba". Y acuerdate también que has de añadir, en las opciones del proyecto Prueba.exe (pestaña "Packages", sección "Runtime Packages"), el paquete "BDPrueba" (más el del formulario "FormPrueba", y en realidad cualquier paquete que necesitemos usar).

Edito: Me faltó aclarar (por si aún no has entendido bien como va todo este tema de paquetes) que para que un paquete use las clases u objetos definidos en otro paquete tendremos que añadir a su cláusula "Requires" aquellos paquetes donde se encuentren dichas clases u objetos (después, para hacer uso de la clase u objeto, sólo es necerio especificar, en las cláusulas "uses" correspondientes, aquellas units que contengan el objeto).

Además, será necesario especificar en las opciones del archivo de proyecto .dpr (pestaña "Packages", sección "Runtime Packages") aquellos paquetes utilizados de forma dinámica. Y para utilizar una clase u objeto desde el mismo .dpr sólo es necesario (al igual que antes) especificar en la cláusula "uses" las units necesarias.


Cualquier duda vuelveme a preguntar!

Chao!

Última edición por jmariano fecha: 24-08-2005 a las 20:21:27.
Responder Con Cita