![]() |
Duda con DeleteObject
Tengo la siguiente duda:
Creando un archivo de recursos en el que uno de ellos es un bitmap con nombre ClubDelphi.
Ahora todo OK, la duda es si al usar el siguiente código debo liberar algo usando DeleteObject o el mismo EXE libera el recurso del compente Image
|
Hola MAXIUM, sobre los objetos que te creas una vez que los termines de utilizarlos debes liberarlos.
Saluditos |
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:
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 |
Excelente respuesta, muchas gracias las cosas me han quedado claras.
|
| La franja horaria es GMT +2. Ahora son las 06:28:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi