Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 11-10-2015
muli muli is offline
Miembro
 
Registrado: jun 2003
Ubicación: A Coruña
Posts: 202
Poder: 23
muli Va por buen camino
No consigo que avance la barra de progreso.

Este es el código que uso después de visionar diferentes paginas de creación de threads, pero la barra de progreso no avanza, yo lo que quiero es que avance mientras no termina de abrirse la fuente de datos, para que el usuario no crea que la aplicación ha quedado colgada. También pensé en realizar el hilo con la fuente de datos, pero al terminar el hilo pierdo toda la referencia a los datos, por lo que no me sirve. Estoy trabajando con Delphi xe6 y para android. Si en lugar de una barra de progreso se tiene que hacer con una animación, me da igual, el caso es que la aplicación realice algo mientras abre los datos, tampoco son muchos registros, una vez abierta la fuente de datos se mueven perfectamente, incluso si hago un update de un registro es instantáneo.

Código Delphi [-]
// Declaro thread
THilo = class(TThread)
  Progreso: TProgressBar;
  procedure Execute; override;
  procedure ActualizarProgreso;
end;

  Hilo1: THilo; // variable global o pública
  Avance : Integer;

Implementation

procedure THilo.ActualizarProgreso;
begin
  Avance:=Avance+1;
  Progreso.Value:=Avance;
  if Avance>100 then
  Begin
    Avance:=0;
  End;
end;

procedure THilo.Execute;
begin
  inherited;
  FreeOnTerminate := True;
  while not Terminated do
  begin
    Synchronize(ActualizarProgreso);
  end;
end;

// Hasta aquí tengo los procedimientos del thread.
// Luego en el procedimiento de abrir los datos tengo esto.
Procedure TForm1.AbrirDatos.
Begin
    ProgressBar1.Value:=0;  // Inicio la barra de progreso.
    ProgressBar1.Visible:=True;
    Avance:=0;

    Hilo1 := THilo.Create(True);  // Creo hilo de ejecución.
    Hilo1.Progreso := ProgressBar1;
    Hilo1.Resume;
// Abro datos. Omito campos para hacerlo mas legible.
    Query1.Close;
    Query1.SQL.Clear;
    Query1.Connection:=FdConnection1;
    Query1.SQL.Add('Select *  From Registros Where Actual=0');
    Query1.SQL.Add('Order By Direccion');
    if not Query1.Prepared then Query1.Prepare;
    Query1.Open;
// Finalizo thread.
  Hilo1.Terminate;
  FreeAndNil( Hilo1 );
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE.
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
Crear Hilos de Ejecución con TIdFTP JAI_ME Varios 12 13-12-2013 18:28:39
Ayuda con Hilos de ejecucion kurono Varios 19 15-01-2011 15:36:40
Problema con hilos de ejecucion gueritox OOP 1 14-08-2010 15:26:06
Aplicacion con varios Hilos de Ejecución samantha jones Varios 1 02-03-2005 17:27:24
Hilos de ejecucion el toluca Varios 2 29-06-2004 22:59:04


La franja horaria es GMT +2. Ahora son las 06:56:13.


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