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

 
 
Herramientas Buscar en Tema Desplegado
  #16  
Antiguo 19-08-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Tienes que crear el módulo de datos. Esto es lo que viene en el ejemplo 3:

Vas a tener un proyecto ejecutable, un programa.bpl y un módulo de datos DM.dcp (DM principal)

En tu DM.dcp (DM Principal) estableces dos procedimientos, uno para crearlo y otro para liberarlo:
Código Delphi [-]
procedure CreateDataModuleMain;
procedure FreeDataModuleMain;

implementation

{$R *.DFM}

var
  DataModuleMainCount: Integer;

procedure CreateDataModuleMain;
begin
  if not Assigned(DataModuleMain) then
    DataModuleMain := TDataModuleMain.Create(Application);
  Inc(DataModuleMainCount);
end;

procedure FreeDataModuleMain;
begin
  Dec(DataModuleMainCount);
  if DataModuleMainCount <= 0 then
  begin
    FreeAndNil(DataModuleMain);
    DataModuleMainCount := 0;
  end;
end;
Esto es tu DM principal.

Ahora, toma en cuenta que tanto tu proyecto ejecutable como todos tus BPL, deben contener un módulo de datos particular, este DM particular se va a comunicar con el DM principal. También tienes que crearlo de la misma forma y añades la creación del DM Principal:
Código Delphi [-]
var
  DataModuleOrder: TDataModuleOrder;

procedure CreateDataModuleOrder;
procedure FreeDataModuleOrder;

implementation

uses
  custdata; // <--- este es el DM principal o el DCP agregado en el "Requires" de tu BPL

{$R *.DFM}

var
  DataModuleOrderCount: Integer;

procedure CreateDataModuleOrder;
begin
  if not Assigned(DataModuleOrder) then
    DataModuleOrder := TDataModuleOrder.Create(Application);
  Inc(DataModuleOrderCount);
end;

procedure FreeDataModuleOrder;
begin
  Dec(DataModuleOrderCount);
  if DataModuleOrderCount <= 0 then
  begin
    FreeAndNil(DataModuleOrder);
    DataModuleOrderCount := 0;
  end;
end;

procedure TDataModuleOrder.DataModuleCreate(Sender: TObject);
begin
  CreateDataModuleMain; //<- al crear el DM particular del BPL, se crea el DM principal
  QueryCustomer.Open;
end;

procedure TDataModuleOrder.DataModuleDestroy(Sender: TObject);
begin
  QueryCustomer.Close;
  FreeDataModuleMain; //<- al destruir el DM particular, se destruye el DM principal
end;

initialization
  DataModuleOrderCount := 0;
end.
Esto es el DM particular que utiliza el programa BPL

Cuando creas tu BPL, debes de crear el DM particular de ese BPL
Código Delphi [-]
procedure TFormOrder.FormCreate(Sender: TObject);
begin
  CreateDataModuleOrder;
end;

procedure TFormOrder.FormDestroy(Sender: TObject);
begin
  FreeDataModuleOrder;
end;
Recuerda que al crear el DM particular de tu BPL, se manda llamar el DM Principal.

De la misma forma, deberás crear un DM para tu proyecto ejecutable que a su vez cree el DM principal. Igual, de la misma forma.

Y la idea es: Se crea tu proyecto.exe, al crearse, este manda crear su DM particular y al crear el DM particular, manda crear el DM principal. Cuando desde tu proyecto.exe, cargas el programa.bpl, el programa.bpl manda crear su DM particular y este a su vez manda crear el DM principal, pero como el DM principal ya fue creado desde el proyecto.exe el DM particular del tu programa.bpl tomará esa conexión previamente creada.

Espero haberme explicado correctamente, de cualquier manera, todo eso viene en el ejemplo 3.
__________________


Última edición por ContraVeneno fecha: 19-08-2008 a las 14:46:50.
Responder Con Cita
 


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
Documentacion o manual sobre ADO (ADonis y otros) JoAnCa Conexión con bases de datos 2 19-06-2008 19:21:14
Documentación sobre COM. alfredosg19 Varios 0 21-08-2006 23:04:10
Necesito documentacion detallada sobre ECO edalmasso Varios 2 12-01-2006 09:47:57
Documentación sobre hooks DarkByte API de Windows 5 23-10-2005 12:48:56
Documentacion sobre firebird en linux gescoto99 Linux 0 10-02-2005 06:04:05


La franja horaria es GMT +2. Ahora son las 05:55:57.


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