 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Man Invitado
|
Publicado: Sab 22 Mar, 2003 11:12 pm Asunto: progressbar |
|
|
Hola
Como hago para hacer que un progressbar aumente, mientras se realiza una
busqueda en una base de datos.
Gracias |
|
| Volver arriba |
|
 |
Daniel Invitado
|
Publicado: Mar 25 Mar, 2003 1:12 am Asunto: Ejemplo de ProgressBar |
|
|
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 |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mar 25 Mar, 2003 8:29 am Asunto: |
|
|
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 |
|
 |
Daniel Invitado
|
Publicado: Mar 25 Mar, 2003 7:28 pm Asunto: Complemetar con consulta a base de datos |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|