Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problema con delete this (https://www.clubdelphi.com/foros/showthread.php?t=45763)

galustiza 13-07-2007 10:12:52

Problema con delete this
 
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:

Cita:

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


La franja horaria es GMT +2. Ahora son las 19:58:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi