PDA

Ver la Versión Completa : Problema con delete this


galustiza
13-07-2007, 10:12:52
Hola!

Os explico el problema que tengo: creando una aplicación en C++ Builder, he insertado (dinamicamente) un formulario incrustado o anidado (de tipo fsMDIChild) en un formulario mayor (fsMDIForm), y posteriormente he incrustado otro formulario "hijo" en el "hijo" creado anteriormente, es decir, me ha quedado así (a lo mejor he cometido una barbaridad):

fsMDIForm -> fsMDIChild -> fsMDIChild

El problema es que en el útlimo "hijo" tengo un botón cuyo único cometido es destruir dicho formulario:

delete this;

Pues al ejecutar dicho comando, la aplicación se cuelga dando un error de acceso. Me he fijado en que se puede ejecutar el mismo comando en el primer "hijo" sin ningún problema ¿Alguna idea de a que se debe esto?

Gracias de antemano

roman
13-07-2007, 17:25:09
No sé yo si tenga algo que ver, porque desconozco casi todo de Builder; pero quizá sea análogo a lo que sucede en Delphi. Aquí, si un formulario se quiere "autodestruir", es decir, destruirlo desde uno de sus propios métodos (como lo es el OnClick de un botón) se recomienda no usar Free sino Release. De hecho, la ayuda de Delphi menciona también a Builder:


Any event handlers for the form or its children should use Release instead of Free (Delphi) or delete (C++)


Prueba a ver si con esto se soluciona.

// Saludos