![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Imagenes en memoria
Tengo un grupo de 12 paneles en los cuales quiero mostrar 12 imagenes por vez. Avanzando o retrocediendo quiero cambiar las imagens de estos. Como puedo primero leer las 200 imagens y guardales en memoria y luego ir refrescando el contenido visual.
Quiero evitar leer desde el disco cada vez.
Muchas gracias. Última edición por dec fecha: 20-05-2007 a las 23:43:33. |
#2
|
||||
|
||||
una forma sencilla es usando Streams (por ejemplo TMemoryStream) entonces en vez de usar LoadFromFile puedes usar LoadFromStream
__________________
self.free; |
#3
|
||||
|
||||
Leer las 200 imagenes para luego mostrarlas de a grupos es muy ineficiente.
Lo ideal es leer de a grupos. Yo lo veo así: necesitas dos botones (al menos): Uno para adelantar y otro para retroceder el grupo. Si tus imágenes están guardadas en un mismo directorio y siguen una misma nomeclatura (foto1, foto2, ... foto200), puedes valerte de una mejor técnica: Almacenar dicho valor en un resourcestring:
El %d se sustituirá por el valor 1, 2,... 200. De modo que con pasar el número correspondiente se forma el directorio completo. De este modo abrir una imagen resulta más sencillo abrir una imagen:
Ahora, como dije... lo ideal es abrir por grupos. Con un simple "truco" podemos hacer corresponder a cada grupo de imagenes con un numero. Algo como esto: 0: Imagenes 1 al 12 1: Imágenes 13 al 24 Entonces, ahora sólo se requiere de un procedimiento que lea este valor representativo y que abra dichas imagenes del grupo. A este procedimiento lo llamas desde los botones adelante y atras. Cada vez que presiones el botón "adelante" o siguiente, incrementas el valor del grupo:
Y la inversa, para el otro botón:
El procedimiento común (MostrarImagenes lo que hará es mostrar las imágenes...
Espero que se entienda. No probé el código, lo puse de memoria... pero creo que puede servirte. Saludos, Última edición por Delphius fecha: 21-05-2007 a las 01:40:51. |
#4
|
||||
|
||||
Cita:
Habría que tener en cuenta de qué tipo/tamaño estamos hablando. ¿Puedes especificar un poco más? ¿es obligatorio cargarlas TODAS en memoria? Piensa que el consumo puede ser muy grande...
__________________
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. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Liberar memoria | Perrero80 | Varios | 15 | 06-04-2017 04:07:10 |
Memoria | Gandazgul | Varios | 2 | 08-05-2004 01:02:37 |
Liberar memoria de un QR. | mlara | Impresión | 1 | 21-02-2004 18:31:16 |
Memoria | susje | Varios | 18 | 23-07-2003 00:07:10 |
![]() |
|