Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2010
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 20
Kenobi Va por buen camino
Generar Mostrar listado lentamente

Hola amigos..
requiero llenar un listbox u otro control con un conjunto de resultados que se iran generando de un ciclo, la idea es simular dicha generacion para hacer mas claro el ejemplo a tal fin estoy utilizando
Código Delphi [-]
sleep(numero)
para conseguir que el proceso no sea tan rapido (por asunto de la simulacion del ejemplo que voy a implementar)
el problema es que el sleep me para el proceso de tal manera que solo veo los resultado al final y no es lo que quiero, quiero que se muestre una linea - pausa - otra linea - pausa y asi hasta el final

Gracias por su ayuda....
Responder Con Cita
  #2  
Antiguo 14-04-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.670
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Y podemos ver tu código?
Responder Con Cita
  #3  
Antiguo 14-04-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola kenobi.

Lo que sucede es que el retardo lo tenes que poner cuando "dibuja" el texto, interceptando el evento OnDrawItem del ListBox.

Asocia este código a dicho evento:
Código:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
   with ListBox1 do
     Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items[Index]);
   Sleep(50); // o lo que quieras...
end;
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 14-04-2010
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 20
Kenobi Va por buen camino
El codigo

Hola la solucion de colocar en el ondraw no me funciono
a tal fin coloco el fragmento de codigo ...

Código Delphi [-]
for i := 1 to elNumero do
begin
  if (elNumero mod i = 0) then ListaNumero.Items.Add(IntToStr(i));

  Sleep(2);
end;
Responder Con Cita
  #5  
Antiguo 14-04-2010
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 20
Kenobi Va por buen camino
Yo mismo me respondo asi funciona

Código Delphi [-]
for i := 1 to elNumero do
begin
  if (elNumero mod i = 0) then
  Begin
  ListaNumero.Items.Add(IntToStr(i));
  listaNumero.Refresh;
  Sleep(100);
  End;
end;

todo consiste en refrescar el listbox en cada iteraccion

gracias por todo amigos
Responder Con Cita
  #6  
Antiguo 14-04-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Perdón,no funciona por que olvidé decirte que pongas la propiedad Style del ListBox a ibOwnerFixedDraw. (nosotros dibujamos)

Es más eficiente que hacer un Refresh por cada iteración, pero para pocos datos, va en gustos...


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-04-2010 a las 20:51:21.
Responder Con Cita
  #7  
Antiguo 15-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Hola kenovi, puedes colocar Application.ProcessMessage en tu ciclo en ves del Refresh.

Código Delphi [-]
for i := 1 to elNumero do
begin
  Application.ProcessMessages;
  if (elNumero mod i = 0) then
  Begin
    ListaNumero.Items.Add(IntToStr(i));
    Sleep(100);
  End;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Generar listado con totales en QuickReport David Conexión con bases de datos 10 08-06-2007 11:22:37
Mostrar un listado MadeInBsAs OOP 3 26-12-2005 21:20:58
mostrar o no mostrar un control en un DBCTRLGRID segun la fila gesteban OOP 0 10-11-2005 17:21:11
Listado de PC´s Sergio J. Varios 8 03-01-2005 10:41:11
generar listado de horas acrophet Varios 3 10-06-2004 17:04:50


La franja horaria es GMT +2. Ahora son las 00:53:17.


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