FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Presentar incremento de un contador
Hola amigos del club, si quiero presentar el incremento de un contador (en una variable) en un label1.caption, pero que presente cada numero incrementado hasta el final del proceso.
Nota: Hice una prueba con el label1.caption, y me presenta el último número incrementado, lo que quiero es que me presente cada numero incrementado por el contador en tiempo de ejecucion. desde ya gracias.
__________________
ronimaxh Rep. Dominicana |
#2
|
||||
|
||||
Debería funcionar con un simple bucle; Eso sí, debes poner un Application.ProcessMessages dentro para poder visualizar los cambios.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
si le pongo con un rango pequeño lo hace rapido y presenta el final de incrementeo, ahora bien, si ciclo se incrementa en millones dura unos segundos y presenta el incremento final, habra otra forma de hacerlo?
Nota: Lo que quiero es insertar 5.5 millones de registros (de dos db diferentes, origen sql server destino firebird 1.5 y me gustaria ir mirando por un contador cuanto va insertando. si hay otra forma para hacer esto, decirme.
__________________
ronimaxh Rep. Dominicana |
#4
|
||||
|
||||
Hola,
El código que Neftali preparó a modo de ejemplo haría lo que se espera incluso en un bucle con millones de vueltas. Ahora bien, si estás realizando alguna operación dentro de, digamos, un procedimiento es ahí donde tienes que situar los "Application.ProccessMessage" que estimes oportuno y es ahí también donde tienes que ir incrementado determinada variable contador cuyo número puedas mostrar donde te sea menester. Acaso si te explayas un poco más (incluso copiando aquí mismo el procedimiento susomentado, si es que haces uso de alguno, o, en todo caso, el código que hallas preparado para la tarea que te ocupa) es posible que se puedan ver otras posibles alternativas, soluciones, formas, en fin, de conseguir llevar a cabo lo que precisas. Por sí mismo, como digo, el código propuesto por Neftali funciona como se espera. |
#5
|
||||
|
||||
Perdona que me meta donde no me llaman, pero a ese proceso no le hace falta ningun label que diga insertando. Simplemente le hace falta que el label diga "Espere por favor".
Ya ves, la eficiencia está reñida con la apariencia. En el bucle de Neftali, deberás añadir "FormaDelLabel.Update", y en cada inserción: - Cambia el label (label1.caption := .....) - Espera por la cola de mensajes (application.ProcessMessages) - Obliga a Repintar el form (form.Update). ¡¡ Y todo esto ralentizará las inserciones más de lo que piensas !!. Obviamente estas triplicando el tiempo, por mostrar un simple label . Si despues de 1 segundo (cuando ha terminado la inserción), dice el label final: Insertados 1 millon y medio de registros, el usuario dirá uuuAAAUUU, increible, rapidísimo, este tio es un "maquina", Sin embargo, si se tira 3 o 4 segundos mirando el númerito del label que parece un cronómetro, cuando termine simplemente dirá: "Que bonito". saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
gracias amigos por la ayuda, sólo era esto, application.ProcessMessages. El problema estaba fuera del proceso de insertar en el código, mal colocado por mi, bien agredicido estoy, tengan buen dia.
__________________
ronimaxh Rep. Dominicana |
|
|
|