PDA

Ver la Versión Completa : Duda con MDIForm


ronson
17-12-2004, 09:27:57
Muy buenas, en primer lugar quiero agradeceros de antemano la atención. Resulta que tengo una ventana MDIChild, y me gustaria saber como puedo hacer para que cuando la cierre no se minimize, no se uqe pasa que cuando pulso el aspa para cerrarla, esta en lugar de cerrarse se minimiza.



Saludos a todos.

Neftali [Germán.Estévez]
17-12-2004, 10:04:37
Prueba a colocar en el OnClose:

Action := caFree;

ronson
17-12-2004, 11:43:49
Muicha gracias, al menos desaparece, pero queda cargado en memoria, no habria uqe hacer un form.Destroy, se puede hacer un destroy desde el propio formulario que se quiere destruir?.


saludos!

jzk
17-12-2004, 12:04:57
Si el formulario lo generas de manera dinámica y no lo tienes definido en el Autocreate, puedes hacer al final de la llamada Formaux.Free.

Quedando :


Application.CreateForm(TFaux, Ffaux);
with Ffaux do Begin
ShowModal;
Free;
End;


Espero que te sirva

Neftali [Germán.Estévez]
17-12-2004, 13:15:32
...al menos desaparece, pero queda cargado en memoria, no habria uqe hacer un form.Destroy, se puede hacer un destroy desde el propio formulario que se quiere destruir?.Desaparece y se destruye,o al menos eso debería hacer.


Action := caFree;

Debería destruirlo.


Action := caHide;

Debería sólo ocultarlo.

Lepe
17-12-2004, 13:47:04
al menos desaparece, pero queda cargado en memoria


¿como deduces que queda cargado?

Si te has fijado por el administrador de tareas de windows, lo que está ocurriendo es que windows no libera la memoria asociada a nuestro proceso, aunque nuestro proceso haya dicho que no la quiere más. para ver exactamente que si se libera, usa la funcion de LiberaMemoria de Ians Marteens (buscala por el foro)

Para comprobar que se ha liberado correctamente, intenta acceder a ese formulario hijo despues de usar caFree, obtendrás una bonita violación de acceso (por tanto, está bien tu programa).


Observación para Neftali: Un mdiChild no puede ocultarse.

Neftali [Germán.Estévez]
17-12-2004, 15:29:30
Observación para Neftali: Un mdiChild no puede ocultarse.
Cierto, un fallo de memoria (en éste caso de la mía). Gracias por la aclaración.