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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2008
JarLem JarLem is offline
Miembro
 
Registrado: sep 2007
Posts: 15
Poder: 0
JarLem Va por buen camino
Question Mostrar ProgressBar mientras se hace Preview de un reporte

Hola Compañeros del foro !!

Estoy trabajando con componentes TMS, quiero saber como uso el AdvProgressBar para mostrar el progreso mientras hago un Preview de un reporte con el componente ARWordReport, este componente tarda bastante en hacer el Preview por lo tanto creo que es necesario el AdvProgressBar para indicar al usuario que la acción esta en proceso, tengo un AdvProgressBar en un MDIForm dispuesto para ello que esta visible todo el tiempo, el problema está en hacer que se llene el progress mientras se realiza el preview.

Alguien tiene idea de como relacionar el preview con el Advprogressbar?

Agradezco su ayuda.
Responder Con Cita
  #2  
Antiguo 16-04-2008
JarLem JarLem is offline
Miembro
 
Registrado: sep 2007
Posts: 15
Poder: 0
JarLem Va por buen camino
Si no se puede o no se sabe. ¿Como hago para llenar un progressbar (TPorgressBar) mientras un proceso esta en curso?

Agradezco las repuestas.
Responder Con Cita
  #3  
Antiguo 16-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Este es un ejemplo de progressbar.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure DialogTimer(Sender: TObject) ;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DialogTimer(Sender: TObject) ;
var
   aPB : TProgressBar;
begin
   if NOT (Sender is TTimer) then Exit;

   if ((Sender as TTimer).Owner) is TForm then
   with ((Sender as TTimer).Owner) as TForm do
   begin
     aPB := TProgressBar(FindComponent('Progress')) ;

     if aPB.Position >= aPB.Max then
       ModalResult := mrCancel
     else
       aPB.StepIt;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   AMsgDialog : TForm;
   AProgressBar : TProgressBar;
   ATimer : TTimer;
begin
   AMsgDialog := CreateMessageDialog('El Programa se esta cargando, Espere', mtWarning, []) ;
   AProgressBar := TProgressBar.Create(AMsgDialog) ;
   ATimer := TTimer.Create(AMsgDialog) ;
   with AMsgDialog do
   try
    Tag := 5; // aqui se cambian los segundos

    Caption := 'En Proceso, espere';
    Height := 100;

    with AProgressBar do begin
     Name := 'Progress';
     Parent := AMsgDialog;
     Max := AMsgDialog.Tag;
     Step := 1;
     Top := 50;
     Left := 8;
     Width := AMsgDialog.ClientWidth - 16;
    end;

    with ATimer do
    begin
     Interval := 1000;
     OnTimer:=DialogTimer;
    end;

     case ShowModal of
     ID_CANCEL:
    //
    end;
   finally
    ATimer.OnTimer := nil;
    Free;
  end;
end;

end.
Saludos
Responder Con Cita
  #4  
Antiguo 17-04-2008
JarLem JarLem is offline
Miembro
 
Registrado: sep 2007
Posts: 15
Poder: 0
JarLem Va por buen camino
Hola Caral!

Gracias por la respuesta... este es un ejemplo de creación en tiempo de ejecución de un progressbar en un MessageDialog pero ¿como seria el código si yo ya tengo un progressbar en un ToolBar que esta visible en todo momento y deseo asociarlo al preview de un reporte?
Responder Con Cita
  #5  
Antiguo 17-04-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Esto es lo mejor que puedo hacer, soy el Novato del club, alguno de los Maestros lo arreglara.
El progressbar ahora esta en el form1 (ya no se crea en ejecución, ni dentro de nada), una vez que termina se muestra el form2.
Lo que si creo en ejecución es el timer, pero si quieres también lo modificas.
Es lo mismo para un reporte, solo lo cambias.
Código Delphi [-]

procedure TForm1.DialogTimer(Sender: TObject) ;
begin
   if NOT (Sender is TTimer) then Exit;

   if ((Sender as TTimer).Owner) is TForm then
   with ((Sender as TTimer).Owner) as TForm do
   begin
    if ProgressBar1.Position >= ProgressBar1.Max then
     ModalResult := mrCancel
     else
       ProgressBar1.StepIt;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   ATimer : TTimer;
begin
   ATimer := TTimer.Create(Form1) ;
   with ProgressBar1 do begin
     Max := 5;
     Step := 1;
     end;

    with ATimer do  begin
     Interval := 1000;
     OnTimer:=DialogTimer;


   case ShowModal of
   ID_CANCEL:
   begin
   form2:=Tform2.Create(self);
   try
      form2.ShowModal;
   finally
      form2.Free;
   end;
   end;
   end;
   end;

end;
Saludos
Responder Con Cita
Respuesta



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
Enviar Mail con Indy + mostrar avance progressbar amadis Internet 7 03-02-2010 14:12:07
mostrar un porcentaje o progressbar rzf1983 Varios 8 25-10-2007 19:05:13
Error al mostrar el Preview URBANO Impresión 3 09-05-2007 09:41:59
dudas sobre reporte en cuanto preview y justificar Patricio Impresión 2 27-04-2007 16:56:34
El reporte no hace nada ilichhernandez Impresión 1 15-03-2007 22:26:20


La franja horaria es GMT +2. Ahora son las 08:05:41.


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