Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 01-04-2007
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Un posible solución es la siguiente:

Puedes crear un evento en el DataModule que se dispare cada vez que procesas un registro, en este evento puedes enviar como parámetros el total de registros y el registro actual, después asignas ese evento desde el Form para que se reflejen los cambios en tu ProgressBar.

Te dejo un código de ejemplo:

Este es el código del DataModule para crear el evento con los parámetros

Código Delphi [-]
type
   TMiEvento = procedure(Sender: TObject; RegActual, Total: Integer) of object;

Después creas un campo y una propiedad para poder asignar este evento desde otro módulo.

Código Delphi [-]
  private
    { Private declarations }
    FMiEvento: TMiEvento;//Creamos un campo
  public
    { Public declarations }
    property OnMiEvento: TMiEvento read FMiEvento write FMiEvento;
    procedure Miproceso;
  end;

Finalmente dentro de tu proceso disparas el evento cada vez que recorres un registro.

Código Delphi [-]
procedure TDataModule1.MiProceso;
var
  Total:Integer;
begin
  Table1.First;
  Total:=Table1.RecordCount;
  while not Table1.EOF do
  begin
    if Assigned(FMiEvento) then
      FMiEvento(nil,Table1.RecNo,Total);//Enviamos los parametros
    Table1.Next;
  end;
end;

Finalmente desde tu formulario asignas este evento

Código Delphi [-]
var
  Form1: TForm1;

implementation

uses
  Unit2; // Este es el que contiene el DataModule

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  DataModule2.OnMiEvento:=ActualizaProgreso; //Asignamos el evento que se encarga de mostrar la barra
end;

procedure TForm1.ActualizaProgreso(Sender: TObject; RegActual, Total: Integer);
begin
  ProgressBar1.Max:=Total;
  ProgressBar1.Position:=RegActual;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  DataModule2.Miproceso; //Ejecuto el proceso que está en el DataModule al pulsar un botón por ejemplo
end;

end.

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar Archivos Desde FTP papu24ar Varios 4 21-03-2007 03:50:57
Actualizar una base de datos desde un formulario federiconqn21 Varios 1 14-12-2005 16:43:23
Formulario con dos ProgressBar Javi2 Varios 1 06-09-2004 18:26:43
DataModule llamado desde varias instancias floren OOP 4 06-04-2004 19:27:50
¿como mandar mensajes desde Datamodule? nefy Conexión con bases de datos 14 16-12-2003 11:30:24


La franja horaria es GMT +2. Ahora son las 19:27:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi