Ver Mensaje Individual
  #1  
Antiguo 16-05-2003
joecool joecool is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Boi - Barcelona
Posts: 15
Reputación: 0
joecool Va por buen camino
Cool Liberar memoria del HDC

Hola a todos.

En un código que me facilitó delphi.com.ar


--------------------------------------------------------------------------------

var
hBmp : HBITMAP;
Bmp : TBitmap;
begin
...
hBmp := CreateDIBitmap( GetWindowDC(GetDesktopWindow()), ... );
Bmp := TBitmap.Create;
Try
Bmp.Handle := hBmp;
Bmp.SaveToFile( 'c:\...' );
finally
Bmp.Free;
end;
--------------------------------------------------------------------------------

me encontré que en cada iteración del bucle se consumían 4 Kb de memoria.

La primera solución que me vino fué utilizar la función CreateDC:

----------------------------------------------------------------------
var
MiDC : HDC

.......

MiDC:=CreateDC('display',0,0,0)
hBmp := CreateDIBitmap( MiDC, ... );
DeleteDC(MiDC)

-----------------------------------------------------------------------

Espero que si alguien se encuentra con ese problema pueda encontrar la solución aquí.

Un Saludo
__________________
Disclaimer (no sé cómo se traduce pero los yankis lo ponen en toas partes- Debe ser algo así como me desentiendo de...).
Lo anteriormente expresado es una mera opinión y no está sujeta a garantía de ningún tipo.
Vamos, que es lo que me parece, me ha funcionado o he visto/leido, pero que me funcione a mí no quiere decir que te funcione a tí.
Responder Con Cita