Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

progressbar

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: progressbar Responder citando

Hola

Como hago para hacer que un progressbar aumente, mientras se realiza una
busqueda en una base de datos.

Gracias
Volver arriba
Mensaje    Asunto: Ejemplo de ProgressBar Responder citando

Idea
Suponiendo que creas un Form2 en el que incluyes el componente ProgressBar1 y un componente Label1 en el cual se indicará de forma numérica el avance, te paso el siguiente código que me ha sido de gran utilidad para monitorear el avance de procesos.

Form2 = new TForm2(Application);
// indicas los valores extremos de la barra de avanc[/color]es
Form2->ProgressBar1->Min = 0; // mínimo
Form2->ProgressBar1->Max = 100; // máximo
Form2->Show();

El avance de la barra de progreso se podrá visualizar después de efectuar algún proceso cíclico.
Por ejemplo:

for ( i = 0; i <=100; i++)
{
Form2->ProgressBar1->Position = i;
Form2->Label1->Caption=String(Form2->ProgressBar1->Position)+"%";
Application->ProcessMessages();
}
delete Form2
A lo anterior le podrás agregar un botón para cancelar procesos

Espero te sea de utilidad.
Saludos desde Chihuahua, México
danielnl@sequia.edu.mx
Volver arriba
Mensaje    Asunto: Responder citando

Nunca lo he hecho lo que dices, pero estaria bien, combinando la respuesta anterior y agregando, me parece que existe una propiedad que devulve el estado de (state) de la consulta, (si la esta efectuando o ya la termino), + el processmessage podemos hacer algo , pronto posteo (barbarismo) la solucion, saludos
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Complemetar con consulta a base de datos Responder citando

Para complementar un poco mas la rtespuesta enviada con anterioridad, te muestro el siguiente ejemplo de una consulta. Cabe mencionar que la base de datos que se utiliza en dicho ejemplo, contiene series históricas de precipitación (lluvia) "precipi1.dbf" y se compone de los siguientes campos:
1) "EST" de tipo numérico entero que corresponde a un código de estaciones climatológicas.
2) "ANO" de tipo numérico entero que registra los años.
3) "MES" campo numérico que registra los meses (1 - 12).
4) "PP" campo numérico tipo float que registra la cantidad de lluvia acumulada en un mes.

// Propiamente en la sentencia Query, se pretende consultar para la estación climatologica No 8044 la lluvia registrada entre los meses de enero a diciembre (1 - 12) y los años 1970 al 2002

//Se inicializa un componente Query el cual puede o no estar ligado a un DataSource y un DBGrid para su visualización
Query1->SQL->Clear();
Query1->Active = false;
Query1->SQL->Add("SELECT * FROM precip1 WHERE precip1.EST = 8044 AND precip1.ANO Between 1970 And 2002 AND precip1.MES Between 1 And 12 ");
Query1->Active =true;


// inicializa la barra de progreso
Form2 = new TForm2(Application);
Form2->ProgressBar1->Min = 0; //inicio
Form2->ProgressBar1->Max = Query1->RecordCount; // fin
Form2->Show(); // desplegrala en pantalla

Query1->First();
for ( i = 0; i <Query1->RecordCount; i++) // desde el inicio hasta el último registro consultado en el componente Query
{

Form2->ProgressBar1->Position = i;
Form2->Label2->Caption=String("Estimando parámetros estadísticos");
Form2->Label1->Caption=String((Form4->ProgressBar1->Position*100)/ Query2->RecordCount)+"%";
Application->ProcessMessages();


Dato = Query1->FieldValues["ANO"] ;
//Se almacenan lo valores de los registros correspondientes en las matrices YEAR [], MESES[] y DATOS[] para su posterior análisis
YEAR[i] = Dato;
Dato = Query1->FieldValues["MES"] ;
MESES[i] =Dato;
Dato = Query1->FieldValues["PP"] ;
DATOS[i] = Dato;
Query1->Next();

}
Query1->Close();

Espero que te sea de utilidad.

Saludos
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.