![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() Hola, qué hay?
En el momento de eliminar completamente las imágenes de un Array of TImage (dinámico) insertadas en un ScrollBox, ¿es suficiente con eliminar dicho ScrollBox o es conveniente eliminar cada imagen individualmente (For i:= High(fotos) DownTo Low(fotos) Do fotos[i].Free)? Es que he hecho las dos versiones y no sé con cual quedarme ![]() |
#2
|
||||
|
||||
Al liberar un array normal no se liberan las cosas a las que apunta... por lo tanto entiendo que deberías liberar cada imagen.
Para comprobarlo puedes hacer un bucle que carge y elimine el ScrollBox sin la parte de la liberación de memoria de los TImage asociados y vas mirando cuanta memoria consume windows. Si sube, ya sabes la respuesta. |
#3
|
|||
|
|||
Lo malo es que un ordenador con 16 GB de RAM ni se iba a enterar
![]() ![]() |
#4
|
||||
|
||||
En teoría no se libera la memoria de las imágenes, ya que estas han sido creadas antes, y asignada después al scrollbox.
Yo las eliminaría, no puede ser lento como dices, debe ser algo instantáneo. Y lo de que tiene 16 Gb no puede ser ninguna excusa ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 16-01-2023 a las 18:44:15. |
#5
|
|||
|
|||
Lento sí que es, tarda sus buenos cinco segundos en deshacerse de unos pocos cientos de miniaturas... claro que solo va a un tercio de la velocidad del microprocesador, lógicamente... En cuanto pueda, hago las pruebas que me sugiere Duilioisola en una máquina virtual...
|
#6
|
||||
|
||||
También puedes cargar imágenes grandes en formato BMP a todo color.
Con el Paint crea un cuadrado blanco de 1000x1000 y guárdalo en formato BMP de 24 bits. La imagen pesará 2.86MB. En la carga de miniaturas fuérzalo a cargar esta imagen. |
#7
|
||||
|
||||
Cita:
¿Por qué tienes que hacer las pruebas en una máquina virtual? ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Cita:
Otra opción podría ser crear un thread sencillo que realizara la liberación y así el programa podría continuar (habría que ver en qué momento se libera).
__________________
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. |
#9
|
||||
|
||||
¡Hola, Wellnic!
Como alternativa al Array, puedes hacer uso de la clase TOBjectList<T> Cita:
__________________
Buena caza y buen remar... http://mivaler.blogspot.com Última edición por movorack fecha: 17-01-2023 a las 13:52:27. |
#10
|
|||
|
|||
Cita:
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Girar un Timage con respecto a otro Timage | Tuvan | Gráficos | 1 | 05-11-2016 21:30:50 |
Problema para hacer un array a un TImage! | Manuzinho | OOP | 5 | 05-02-2011 23:51:19 |
Mostrar cada imagen de un Array of TImage. | rauros | Gráficos | 1 | 04-09-2008 17:38:55 |
como Hacer que un TImage siga a un Timage? | j_flores3000 | OOP | 8 | 27-03-2008 18:47:50 |
como combinar 2 Timage en un tercer Timage | JefeNet | Gráficos | 10 | 02-09-2004 16:51:35 |
![]() |
|