Ver Mensaje Individual
  #8  
Antiguo 19-05-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Perdona pero discrepo en el siguiente punto:

Si abro un formulario que está disponible y lo cierro sin la opción CaFree.

Despues de cerrado puede seguir accediendo a él, de lo que se infiere, que se cierra pero no libera recursos.

ShowMessage(Form2.caption), me funciona perfectamente despues de cerrar el formulario 2, no es así si le aplico CaFree en el evento Onclose del mismo.

Supongo que lo que quieres decir es que cuando se cierre la aplicación, se liberarán los recursos de este formulario y por ende de cualquier otro que estuviese abierto.

Yo me refería a un formulario que se crea de la manera que indiqué y que cuando se cierra queremos que libere todos sus recursos.

Para fortalecer mi opinión he añadido al form2 un tedit. si lo cierro
y desde form1 hago : ShowMessage(form2.edit1.Text), me muestra sin ningún prolbema el contenido del edit1 que está en el formulario 2, pero si le aplico CaFree, me devuelve una excepción por intentar acceder a un objeto que no existe, sin duda destruido por CaFree.

//
Occurs when the form closes.

type
TCloseAction = (caNone, caHide, caFree, caMinimize);

TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object;

property OnClose: TCloseEvent;

Description

Use OnClose to perform special processing when the form closes. The OnClose event specifies which event handler to call when a form is about to close. The handler specified by OnClose might, for example, test to make sure all fields in a data-entry form have valid contents before allowing the form to close.
//

Un Saludo.

Última edición por marcoszorrilla fecha: 19-05-2003 a las 19:39:05.
Responder Con Cita