![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Recuerda poner las etiquetas de código para poderlo leer cómodamente.
Respecto a tu problema, no estas liberando los objetos creados, sólo parte de ellos. Prueba de esta manera:
Saludos. |
|
#2
|
||||
|
||||
|
Gracias por tu respuesta "escafandra"
Pero sigo igual he probado a usar
y nada, lo que parece que la memoria se llena la del sistema operativo no de la aplicación. Quizas, si pudiera leer la pantalla de otra forma, por ejemplo leyendo los pixeles del canvas de la pantalla y pasandolos al bitmap no consuma ram, pero he probado y me sigue gastado toda la ram Con esto llego a la conclusion de que no se libera la ram por parte del sistema operativo y es siempre que lleno el bitmap, osea se libera el bitmap pero el "buufer" intermedio no. ¿Como podria pasar la imagen directamente al stream? Gracias. |
|
#3
|
||||
|
||||
|
Hola de nuevo.
Lo que he podido comprobar, es que donde "se queda" la memoria es en "errores de pagina" de la aplicación. Esta es la vista inicial de la aplicacion "cpcomcontrol.exe" ![]() y esta tras un medio minuto de ejecucion (manda la pantalla cada 500 ms mas o menos) ha gastado 130 mb de ram. Cuando salgo de la aplicacion se libera toda la ram. ![]() ¿Como puedo liberar los "errores de pagina"? Gracias y perdonar por insistir pero si lo solucionamos pongo todo el codigo para que quien quiera pueda hacerse un pequeño (o grande) vnc o escritorio remoto. |
|
#4
|
||||
|
||||
|
prueba a liberar así:
¿El Componente TPngImage es de terceros?, ¿no será esa la causa?. Prueba a mandar la imagen sin comprimir o en Jpg. También puedes tener fugas en otro punto que no sea ese procedimiento. Valora resolver esa tarea con la API de GDI plus. Saludos. |
|
#5
|
||||
|
||||
|
Gracias escafandra por seguir el tema.
voy a probar como dices, pero me da que no. El componente TPngImage es de delphi igual que el jpeg o bitmap, el problema como explicaba antes no es del formato de la imagen ni de mandarlo, es cuando lleno bitmap. Ya he probado en jpeg, sin comprimir, llenarlo y no mandarlo, etc.
¿Por que se queda en errores de pagina? ¿Se te ocurre como mandar el LBitmap.Canvas.CopyRect(r, c, r); directamente al stream sin pasar por el bitmap o png? La verdad es que como mejor funciona es con png, si uso jpeg se "frie" (sin recursos) en un momento, no va bien en jpeg. y por ultimo ¿que es el GDI plus? |
|
#6
|
||||
|
||||
|
Mi delphi 7 no tiene ese componente pero si he visto publicado código para él.
Sin probar no te puedo decir, es posible que exista un bug en algún sitio... Cita:
Es una extensión de GDI: GDI+ Saludos. |
|
#7
|
||||
|
||||
|
Agregando a lo que dijeron anteriormente, hay un tema un poco oscuro en esta forma de tratar el manejo de errores al crear objetos:
Es algo muy fuera de lo común, pero imaginemos que estos constructores producen errores: si el constructor del primer objeto falla, este no se ha creado, suponemos que la clase gestiona bien la memoria y no es necesario liberarlo pues no se ha creado, pero si falla el segundo o el tercero, los objetos anteriores han sido creados y nunca se ejecutará el código donde liberamos la memoria de los mismos. Por eso tengo la costumbre, de que cada constructor tiene asociado un bloque de control de errores para poder liberar el espacio utilizado, ejemplo:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| liberar memoria | Celta | Varios | 5 | 12-12-2010 18:07:17 |
| Liberar memoria | Sick boy | Varios | 6 | 02-07-2005 10:11:29 |
| problema tonto | gatsu | PHP | 2 | 25-04-2005 21:41:21 |
| Liberar Memoria | JoseQ | Varios | 6 | 16-07-2004 18:49:21 |
| Liberar Memoria | JODELSA | Varios | 4 | 13-05-2003 17:39:05 |
|