FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizar ProgressBar segun se rellena una StringGrid ó DBGrid
Buenas a todos
Por mas que estoy buscando información en internet no he encontrado nada que me pueda orientar. El tema en cuestión es que se vaya rellenando una barra de progreso mientras se rellenan las celdas de una StringGrid. A ver si alguien podría orientarme o decirme donde puedo encontrar información al respecto. Muchas Gracias a todos |
#2
|
||||
|
||||
Bueno, deduzco que para llenar el StringGrid utilizas un bucle, ¿no? un for, un while o un repeat.
Pues coloca una TProgressBar, dale a su propiedad Max el número de iteraciones del bucle (esto es, las veces que se repite) y cada vez que el bucle se ejecute una vez, pues pones una de estas tres cositas:
Y después, si mal no recuerdo, para que se vea el efecto tienes que llamar al método Refresh o Repaint (no recuerdo bien ) del Form donde esté o el suyo propio (el de la progressbar, digo). Espero que te sirva de ayuda. Y mira en la ayuda de Delphi para más información. Saludos. Por cierto... ¡¡¡bienvenido al club!!!. Dale un repaso a la guía de estilo (esto de la barra de progreso ya está muy visto ) (vaya, yo dando la bienvenida a alguien... ) Última edición por ixMike fecha: 14-12-2007 a las 20:45:54. |
#3
|
||||
|
||||
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#4
|
|||
|
|||
No funciona
Gracias pero eso no funciona.
Yo utilizo el evento onDrawCell para rellenar las celdas cogiendo la informacion de un array global. Y dentro de onDrawCell no he podido actualizar ninguna progressbar. TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); L := Rect.Left + (Rect.Right - Rect.Left - bmp[5*ARow+ACol].Width) div 2; T := Rect.Top + (Rect.Bottom - Rect.Top -bmp[5*ARow+ACol].Height) div 2; with StringGrid1.Canvas do Draw(L, T, bmp[5*ARow+ACol]); Asi es como la relleno mas o menos. He buscado en todos los foros del club delphi con la busqueda de progressbar y no he encontrado nada que me oriente. Gracias |
#5
|
|||
|
|||
Hola...
Ya leiste Guía de Estilo de estos foros? También te recomiendo que uses las etiquetas [ delphi ] [ /delphi ] (sin los espacios en blanco) cuando quieras agregar código fuente en Delphi... Sobre tu problema, usas algún for o while para ir llenando el StringGrid? Algo como:
Saludos... |
#6
|
|||
|
|||
Mi StringGrid esta formada por bmps, como el xp o el acdsee (thumbnails). Las celdas tienen el fondo de color con el bmp centrado.
Entonces de la forma que pones no se como pasar el bmp a la StringGrid Gracias de nuevo |
#8
|
||||
|
||||
En el club, creo que esta es la segunda vez (o la tercera, ¡si es que todos se me adelantan siempre!)
Cita:
Si utilizas DrawCell para dibujar las celdas, entonces, antes de cada dibujado, tendrías que asignar la propiedad Max de la progressbar al número de celdas, y la propiedad position a cero, y cada vez que se dibuje una celda (esto es, en el evento OnDrawCell) incrementar en uno la posición del progressbar. Pero recuerda llamar después de esto a Refresh, Repaint, ProcessMessages o algo similar, porque sino no verás el resultado en pantalla. Para más información con progressbar mira la ayuda de Delphi. Saludos. |
#9
|
|||
|
|||
Si, posiblemente sea mucha memoria, debería mantener solo en memoria los bmps que se visualizaran en la stringgrid por defecto, que son 30 celdas, e ir agregando y quitando bmps segun los necesitara o no.
Está claro que al programa le falta mucho, pero solo quería construir un simple visualizador de fotografías que fuera ligero. Al final, la actualización de la ProgressBar la hago en un procedimiento donde genero los bmps en memoria, que eso es lo que realmente tarda, y antes no se porque, no me dejaba (funcionaba). Gracias a todos por las respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
actualizar datos de una tabla según datos de otra. | GustavoCruz | SQL | 10 | 01-06-2007 23:18:44 |
Actualizar ProgressBar de un formulario desde DataModule | Jesús Pena | Varios | 2 | 13-04-2007 01:27:13 |
Actualizar datos de un StringGrid desde DB | BlackDaemon | SQL | 37 | 12-04-2007 07:38:32 |
Resultados en DBGrid según filtrado | Mathom | Varios | 8 | 15-12-2005 14:19:04 |
Actualizar un campo segun opcion de picklist de otra columna de un dbgrid | nefy | Conexión con bases de datos | 5 | 17-01-2004 20:11:34 |
|