![]() |
![]() |
| 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
|
||||
|
||||
|
Cita:
Código:
Result:=TBitmap.Create; Result.Assign(BMP); Código:
Var
MyBMP : TBMP;
Begin
MyBMP := Funcion(OtroBMP);
try
// hacer cosas;
finally
MyBMP.Free;
end;
end
Código:
Begin
with Funcion(OtroBMP) do
try
// hacer cosas;
finally
Free;
end;
end;
El hacer una copia de la variable de entrada y luego liberarla... no tiene sentido. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
|||
|
|||
|
gestionando bien la memoria
Hola otra vez,
ya he probado lo que decías, y ahora la memoria que se reservaba para el Result ya la libero desde la función que llama a la que he expuesto. No obstante, te volveré a explicar mejor el problema. Cuando se llama a la función, como tú decías se copia la imagen con assign, pero todavía no aumenta la memoria en uso. Cuando hago line1:=... es cuando aumenta la memoria en uso, y también cuando hago line2:=... Como ésta última la libero después desde la función desde la que he llamado a ésta, quedaría resuelto, pero el line1:=... que se refiere a la variable de entrada (constante, no sé si esto influirá) es el que me da problemas ahora. Con esta asignación del linescan se reserva memoria, pero no se cómo liberarla luego, ya que no puedo hacer un Free de la variable de entrada, pues ésta se pierde. ¿Qué es lo que podría hacer con este problema? Muchas gracias por tu ayuda y un saludo. |
|
#3
|
||||
|
||||
|
La verdad nunca he usado el método ScanLine, y la documentación no es clara en cuanto a si reserva memoria o no. Dado que devuelve un puntero, te recomiendo que revises el código y/o documentación del API, y si reserva memoria, llamés al método adecuado para liberarla después de haber terminado de usarla.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#4
|
|||
|
|||
|
Memoria ocupada por Bitmaps
Hola otra vez,
al final he tenido que hacer una copia a una variable local del parametro de entrada para asociarlo con el puntero, y luego una vez acabada la función he hecho un Free a esta variable. con esto he conseguido liberar la memoria. Se que no es lo óptimo pero funciona. Si encuentras la razón de mis problemas hazmelo saber, por favor. Muchas gracias por tu ayuda y un saludo. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|