Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2005
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 21-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Debería funcionar con un simple bucle; Eso sí, debes poner un Application.ProcessMessages dentro para poder visualizar los cambios.

Código Delphi [-]
 for i := 0 to 100 do begin
   Label1.Caption := IntToStr(i);
   Application.ProcessMessages;
 end;
__________________
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.
Responder Con Cita
  #3  
Antiguo 21-10-2005
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 22-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 22-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 22-10-2005
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 10:18:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi