Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2003
eliasterrero eliasterrero is offline
Miembro
 
Registrado: may 2003
Posts: 25
Poder: 0
eliasterrero Va por buen camino
Unhappy No consigo cerrar una ventana modal

Hola a todos, tengo un problemilla al cerra una pantalla, pasa olimpicamente de mi modalresult:=mrok y no se cierra nunca, tengo que salirme de la aplicación a las bravas (ctrl+alt+supr), eso lo me ocurre a veces y no logro encontrar una solución. Gracias de antemano.

Covadonga

Aqui os pongo algunas partes de código por si siven de ayuda, si teneis alguna duda, preguntadme por favor.

1º el procedimiento al que llamo para crear la pantalla.

procedure MuestraESAlmacen;
Begin
With TESAlmacen.Create(Application) do
Try
ShowModal; // la creo como modal
Finally
Free;
end;
end;


2º El procedimiento al que llamo pulsando un botón donde realizo un procedimiento y luego de digo el ModalResult. El procedimiento lo ejecuta, pero luego no cierra la ventana.

procedure TESAlmacen.Salir;
begin
// la funcion as mensaje es una funcion propia que utiliza un messagebox
if asMensaje('¿ Desea procesar estos movimientos de almacén ?'#13#10' (Si pulsa ''NO'', se cancelarán)', MB_YESNO + MB_ICONQUESTION) = idYES then
begin
TraspasaMovimientos; // función donde hago un proceso con unas tablas
ModalResult := mrOK; // Aqui es donde el programa pasa de mi
end
else
begin
ModalResult := mrCancel;
end;
end;
Responder Con Cita
  #2  
Antiguo 11-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Creo que todos los que programamos en Delphi, utilizamos habitualmente formularios modales, y si este fuera un problema habitual, Delphi no tendría tantos adeptos.
¿Estas seguro que el ModalResult se lo estas asignando al ModalResult de la instancia del formulario que necesitas cerrar?
¿Haces algo en el OnClose del formulario?
¿No se produce ninguna excepción?... ¿No estas "enmudeciendo" ninguna excepción?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 11-11-2003
eliasterrero eliasterrero is offline
Miembro
 
Registrado: may 2003
Posts: 25
Poder: 0
eliasterrero Va por buen camino
Cita:
delphi.com.ar comentó:
Creo que todos los que programamos en Delphi, utilizamos habitualmente formularios modales, y si este fuera un problema habitual, Delphi no tendría tantos adeptos.
¿Estas seguro que el ModalResult se lo estas asignando al ModalResult de la instancia del formulario que necesitas cerrar?
¿Haces algo en el OnClose del formulario?
¿No se produce ninguna excepción?... ¿No estas "enmudeciendo" ninguna excepción?
Respuestas:
No hago nada en el on close del formulario.
No "enmudezco" ninguna excepcion, incluso pobre a depurar con debuger options del delphi y no me salto ninguna.
Y sobre si el modal result lo hago en el formulario, estoy casi convencida ya que creo que si no lo hiciera, el formulario no se cerraria unas veces si y otra no.
La verdad es que ando un pelin desquiciada, por que no le encuentro ninguna explicación, creo que lo he intentado casi todo, pero no logro cazar el error.

Gracias por tus sugerencias y por las futuras.

Covadonga.
Responder Con Cita
  #4  
Antiguo 11-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Porqué no nos cuentas que es lo que haces en este formulario...
Si puedes pasarnos mas código, mejor!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 11-11-2003
Nadie Nadie is offline
Miembro
 
Registrado: ago 2003
Ubicación: http://manchasenlapared.blogspot.com
Posts: 75
Poder: 21
Nadie Va por buen camino
procedure MuestraESAlmacen;
var
ventana: TESAlmacen;
Begin
ventana:=TESAlmacen.Create(Application);
if ventana.ShowModal=mrok then edit1.text:=ventana.edit1.text;
end;

ahora solo en el formulario esalmacen tenes que poner en el boton ok que sea mrok y listo
Responder Con Cita
  #6  
Antiguo 11-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Nadie comentó:
procedure MuestraESAlmacen;
var
ventana: TESAlmacen;
Begin
ventana:=TESAlmacen.Create(Application);
if ventana.ShowModal=mrok then edit1.text:=ventana.edit1.text;
end;

ahora solo en el formulario esalmacen tenes que poner en el boton ok que sea mrok y listo
No veo como esto puede solucionar su problema. El formulario tendría que cerrarse en cuanto su propiedad ModalResult sea distinta de cero (mrNone) independientemente de cómo se llame a ShowModal.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:46:38.


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
Copyright 1996-2007 Club Delphi