Ver Mensaje Individual
  #3  
Antiguo 24-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 22
keyboy Va por buen camino
Creo que la pregunta de Maxium va encaminada a saber si al liberar el objeto (método Free) también se libera el handle que devuelve Windows en la función LoadBitmap.

Digamos que uno está acostumbrado a la comodidad de la VCL sin recurrir a llamadas a la API de Windows (como lo es LoadBitmap) y es natural que uno se desconcierte al usarlas, sobre todo si tenemos en cuenta el tajante texto de la ayuda del SDK de Windows:

Cita:
The application must call the DeleteObject function to delete each bitmap handle returned by the LoadBitmap function
Pero, es bueno recordar también que la VCL hace un gran trabajo para protegernos de estos detalles.

Hay que recordar que una propiedad como Bitmap.Handle, no es una variable cualquiera, y la asignación de un valor a ella, pasa por un método (SetHandle) que, entre otras cosas, se encargará de aplicar el DeleteObject al handle anterior, en caso de que ya hubiera uno asignado. Y, al liberarse el objeto, el destructor se encargará igualmente de aplicar DeleteObject cuando sea necesario.

En resumen, no es necesario aplicar DeleteObject uno mismo, pues la VCL se encarga de ello, pero, claro está, como dice Caro, es indisplensable liberar el objeto Bitmap con Free.

Bye
Responder Con Cita