Ver Mensaje Individual
  #2  
Antiguo 25-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé si estoy entendiendo bien. La solución rápida pero no muy buena es incluir la unidad del formulario en la unidad del datamodule.

Algo no tan rápido pero más limpio sería implementar una especie de evento en el datamodule:

Código Delphi [-]
type
  TDMLiquidacion = class(TDataModule)
   ...
  private
    FOnProgress: TNotifyEvent;

  public
    OnProgress: TNotifyEvent read FOnProgress write FOnProgress;
  end;

En el código del datamodule, cada vez que des un paso más, haces algo como esto:

Código Delphi [-]
if Assigned(FOnProgress) then
  FOnProgress(Self);

Entonces, en tu formulario, tendrías que crear un método para el evento:

Código Delphi [-]
type
  TFliquidaPeriodo = class(TForm)
    ..
  private
    procedure DMOnProgress(Sender: TObject);
  end;

Asignas el método en el OnCreate:

Código Delphi [-]
DMLiquidacion.OnProgress := DMOnProgress;

Y en la implementación de DMOnProgress actualizas tu barra de progreso o cualquier cosa que necesites.

Para que quede completo, podrías añadir un evento OnProgressBegin en donde pasas al formulario la información de cuántos pasos en total hay para que inicialices tu barra de progreso.

// Saludos
Responder Con Cita