PDA

Ver la Versión Completa : DeleteObject


taita
25-09-2005, 12:24:29
Hola a tod@s:
Tengo cinco TImage colocados en un formulario, a los que les he modificado posiciones y tamaños.
Utilizo el siguiente código para cargar las imágenes desde un archivo de recursos:

image1.Picture.Bitmap.Handle:=loadbitmap(HInstance,'billete1');
image2.Picture.Bitmap.Handle:=loadbitmap(HInstance,'billete2');
image3.Picture.Bitmap.Handle:=loadbitmap(HInstance,'billete3');
image4.Picture.Bitmap.Handle:=loadbitmap(HInstance,'billete4');
image5.Picture.Bitmap.Handle:=loadbitmap(HInstance,'billete5');

He leído en varios sitios que al utilizar LoadBitmap se deberían liberar los recursos con DeleteObject.
¿Alguien me puede explicar como debería hacerlo en este caso?
¿Que sucedería en el caso de no liberar los recursos?

Gracias por anticipado.

dec
26-09-2005, 06:18:12
Hola,

Efectivamente en la ayuda de la función "LoadBitMap" que puede encontrarse en el SDK de Win32 (disponible en Delphi) puede leerse al final del todo:


The application must call the DeleteObject function to delete each bitmap handle returned by the LoadBitmap function.

Que en cristiano vendría a decir poco más o menos que la aplicación debe llamar a "DeleteObject" por cada "Handle" retornado por la función "LoadBitMap".

No sabría explicarlo (lo he intentado, quizá no lo suficiente, esto sí) pero casi estoy seguro de que no tienes que ocuparte tú mismo de usar "DeleteObject" pues de eso se encargan las clases de que te vales (creo que el destructor de la clase "TBitmapImage").

Si echas un vistazo a las clases "TBitMap" y "TBitmapImage" verás al menos lo que yo he visto para concluir por decir lo que he dicho arriba: quizás tú seas capaz de explicarlo mejor que yo; quizás alguien pueda y aun deba contradecirme. ;)