| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Diego F Invitado
|
Publicado: Mie 13 Ago, 2003 8:42 pm Asunto: progressbar mientras se ejecuta una funcion |
|
|
Hola
Tengo en mi proyecto una funcion la cual consume bastante tiempo en ejecutarse, y por lo tanto quiero saber como hago para que salga una ventana con un progressbar que me indique en que punto va o cuanto falta para finalizar la funcion.
Espero que me puedan colaborar
Gracias |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mie 13 Ago, 2003 9:37 pm Asunto: |
|
|
Creo una forma qeu contiene el progressbar, le digo que no se creee al inicio, y cuando la necesito la llama
| Código: |
if(frmBarra==NULL)
{frmBarra=new TfrmBarra(this);
frmBarra->bar->Max=dmDefiniciones->qryConsultaMenu->RecordCount+
dmDefiniciones->tbGruposInsumos->RecordCount;
}
|
Como puedes ver asigno el LIMITE maximo del progress abr tomandolo de los registro maximos que voya procesar
y posterioremete cada vez que avanzo , incremento la posicion
| Código: |
frmBarra->bar->Position+1;
|
Espero te sirva _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Diego F Invitado
|
Publicado: Mie 13 Ago, 2003 9:46 pm Asunto: aclaracion |
|
|
Gabriel
Agradezco tu colaboracion, pero segun veo en el codigo que haz enviado estas trabajando con un query y con el metodo recordcount.
Pero en mi funcion yo no estoy usando componentes de una base de datos sino que estoy trabajando con redes neuronales.
De igual forma, gracias por la colaboracion y espero me puedas ayudar. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mie 13 Ago, 2003 11:04 pm Asunto: |
|
|
Ok.
Que necesitas para al barra
1.- EL MAXIMO NUMERO DE PROCESOS,ITERACCIONES, CICLOS ETC QUE VA REALIZAR
2.- Un seccion del programa donde actualizes el progress bar (Position)
Y ya
como ves yo uso Recordcount , tu tal vez sabes cuantos ciclos tienes o lo puedes calcullar el numero de nodos
y vas actualizando.. me explique? _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Jue 14 Ago, 2003 5:39 am Asunto: |
|
|
Hola Gabriel...
la verdad no me sirve saber cuantas iteraciones tengo, porque la red neuronal va creciendo y por ende los ciclos se van incrementando.
Por eso me gustaria saber si es posible intersectar algun procedimiento que me permita realizar esto.
Gracias |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Jue 14 Ago, 2003 6:22 am Asunto: |
|
|
Invitado sin nombre (date de alta en el foro par qu etengas una identidad reconocida )
Ya entendi lo que quires, para que un progress bar pueda funcionar debes tener en cuenta algo muy simple:
Ponle un valor maximo al progress bar , si quieres 100
dentros de los procesos y funciones que tienes , en alguna de ellas deber saber en que parte del proceso esta , podria ser un porcentaje , ese valor lo pasas a la propeidad Position de progressbar y este sse incrementara, ahora bien, si en algun momento cambia el limite maximo, lo puedes modificar otra vez en la propiedad anteriormente dicha.
SI NO SABES EL LIMITE MAXIMO,entonces has "trampa"
Suponiendo que tengas tres funciones a llamar hast que termine el proceso largo del que hablas. simplente harasi esto
PB->Max=10; // ponle un valro arbitrario
Funcion1();
PB->Position=3; // incrementalo (a huevo)
Funcion2();
PB->Position=6; // incrementalo (a huevo)
Funcion3();
PB->Position=10; // incrementalo (a huevo)
Ya me explique, espero haber sido de ayuda,
Tienes alguna duda sobre el funcionanmiento del porgress bar, ya no puedo ayudarte a como implementarlo debidoq a que no conozco tu codigo
No se me ocurre otra manera de manejs un progress bar, la filosofia del componete es mostrar un grado de avance , poer simple sentido comun tendrias qeu saber en ciertos puntos el avance del mismo para representa el INDICE de progreso
en termino matematicos
tu proceso inicia en 0 y termina en 1 (0-1)
en cada interaccion debrerias tener un indice de progreso y ese indice lo pasarias al progress bar (el progres bar solo "conoce" alos enteros asi que conviertes 0-1 se vuelve 0-100 y el indice es un valor
si no sabes cuando va a finalizar , bueno.. .engaña al usaurio que vea algo que tal ves no refleje el proceso de avance conforme se efectua (por que tal vez no lo puedas calcular por la misma naturaleza de las redes neuronales) pero si podrias divir la operacion en segmente y aumebtar el porgress bar con valores discretos (a huevo)
saludos
asi que suerte y sigue intentando _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
|