FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problema con Timage
BUenas amigos mi problema es el siguiente yo hago una simple asignación de una ruta de una foto en jpg, (previamente agrego la unidad jpeg) y la mando a cargar
ella carga de maravilla pero en cierto momento, porque este proceso se repite de 15 a 20 veces seguido con un lapso de diferencia como de 1 seg ya que es mostrar unas fichas del personal en pantalla, en cierto momento me da una excepción Access violation at address 42E74800. Read of address 42E74800 pero en ningún momento yo mando a liberar el objeto Timagen lo mas que llego hacer es
para limpiar la imagen y muchas veces cuando me da la excepción de arriba tambien se repite abajo cuando mando a limpiar la imagen
__________________
La vida es un simple pero complejo If J=rS
|
#2
|
|||
|
|||
hola,
podrias poner el codigo? saludos PD: asignar a nil y liberar es mas o menos lo mismo. |
#3
|
||||
|
||||
Pero muy mas o menos. Poner una referencia a nil por sí mismo no hace nada, no libera memoria ni destruye nada, pero cualquier uso posterior que se quiera hacer de esa referencia causará un "Access violation".
// Saludos |
#4
|
|||
|
|||
hola roman, esta es una duda al respecto...
el 'garbage collection' sirve precisamente para estos casos no? por lo tanto, asignando a nil, quieras o no estas enviando este puntero 'a la papelera...', liberando su memoria. Es una duda, no una afirmacion. saludos y gracias por la respuesta |
#5
|
||||
|
||||
¡Ah! Pues ahora que lo mencionas, quizá, en los nuevos Delphi. Yo estaba pensando en Delphi <= 7 en donde no hay recolección de basura, así que muy posiblemente estés en lo correcto, disculpa.
// Saludos |
#6
|
|||
|
|||
Cita:
Muchas gracias amigos , entonces que me recomiendan para limpiar mi Timagen?
__________________
La vida es un simple pero complejo If J=rS
|
#7
|
|||
|
|||
hola otra vez,
si pones el codigo quiza te podamos ayudar mejor PD: para limpiar la imagen, personalmente dibujo un rectangulo negro o bien dibujaria la siguiente encima PDD: pues no, segun wikipedia, delphi no usa el garbage collector. Asi pues, ni con el mas o menos: asignar a nil te deja espacio en memoria reservado, bloqueado e inaccesible. saludos Última edición por coso fecha: 26-06-2008 a las 18:06:38. |
#8
|
||||
|
||||
Perdón, la verdad es que nada más estoy confundiéndolos. Y lo voy a hacer un poco más
En Delphi <=7 (el resto no sé), poner una referencia a nil, como digo, no libera memoria. Pero, en el caso de una propiedad como image1.picture, normalmente sí se liberará la memoria porque la asignación
se traduce en
y muy probablemente el método SetPicture sí se encargue de liberar la memoria. De todas formas, sigue siendo cierto que si posteriormente se intenta usar image1.picture se obtendrá el error mencionado. Así que, como dice coso, lo mejor es que muestres más código para saber qué pasa. // Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
problema al pintar en un TImage | miguel_e | Varios | 1 | 17-05-2008 01:11:23 |
Problema con un TImage | vivamotos | C++ Builder | 5 | 24-04-2008 16:45:32 |
Problema con TImageList y Timage | Archangel | Gráficos | 1 | 07-11-2007 23:53:32 |
Problema con tImage en QReport! | paulodb | Impresión | 2 | 08-12-2006 16:14:21 |
Problema con un TImage | Jan_polero | Gráficos | 1 | 29-11-2004 23:15:11 |
|