Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Destuir forma showmodal (https://www.clubdelphi.com/foros/showthread.php?t=50817)

MaMu 28-11-2007 22:35:38

Destuir forma showmodal
 
Tengo una aplicacion MDI, la cual desde un MDIChild cierro la aplicacion cuando quiero forzar a guardar cambios. Pero, si ejecuto una forma con showmodal (es necesaria, es el login), al intentar forzar el cierre de la aplicacion, esta me da un Access violation.

yo cierro con

Código Delphi [-]
Application.Terminate;

y cierra sin problemas.
necesitaria saber como hacer lo siguiente

Código Delphi [-]
// si esta creada la forma que habro con showmodal, la destruyo
//y luego salgo, alguna idea?
//login:=nil; da error
//login.destroy; da error
Application.Terminate;

Saludos y Gracias

maeyanes 28-11-2007 22:45:27

Hola...

Ya intentaste Login.Free?


Saludos...

Neftali [Germán.Estévez] 29-11-2007 13:05:27

Cita:

Empezado por mamu (Mensaje 249152)
Pero, si ejecuto una forma con showmodal (es necesaria, es el login), al intentar forzar el cierre de la aplicacion, esta me da un Access violation.

Utiliza el valor de retorno del form modal, para saber si tienes que cerrar o no. No lo hagas desde dentro del form.

Código Delphi [-]
  res := f1.ShowModal;

  // Al volver cierras
  if (res = mrCancel) then begin
    // cerrar el main
    Self.Close;
    // o
    Application.Terminate
  end;

Desde dentro del f1 (modal) puedes devolver uno o lo otro.

Código Delphi [-]
  ModalResult := mrOK

o

  ModalResult := mrCancel;

MaMu 29-11-2007 14:15:16

SOLUCIONADO

Funcionan ambas soluciones, la de maeyanes y la de Neftali.

Moraleja: 1 Free + 1 nil = 1 destroy

Saludos


La franja horaria es GMT +2. Ahora son las 03:48:05.

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