Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2011
M. FM. M. FM. is offline
Miembro
 
Registrado: ago 2007
Posts: 37
Poder: 0
M. FM. Va por buen camino
Ventana MDIChild y ventana de aviso

Buenas tardes:

Tengo una aplicación con una ventana principal que va llamando a otras de tipo MDIChild. Tras abrir una de esas ventanas MDIChild, el usuario puede ejecutar una acción que lanza una ventana de aviso. Dicha ventana se abre con ShowModal y cuando se le da a aceptar se envía un ModalResult := mrOk.

Es decir, tenemos 3 ventanas: la principal o ventana marco, la que se abre como MDIChild y la de aviso que lanza esta última con ShowModal.

Mi problema es que después de mandar el resultado (que se recoge bien), la ventana modal se cierra, pero también se pierde el foco de toda la aplicación y se me muestra otra aplicación de las que tengo abiertas en el ordenador. No sé cómo hacer para que se siga mostrando mi aplicación porque no entiendo por qué pasa esto.

Muchas gracias de antemano si alguien me puede ayudar.
Saludos,
M.
Responder Con Cita
  #2  
Antiguo 24-02-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Deberías crear esa ventana de aviso también con MDIChild. Seguramente no lo hagas así, y por eso devuelve el foro a Windows
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 25-02-2011
M. FM. M. FM. is offline
Miembro
 
Registrado: ago 2007
Posts: 37
Poder: 0
M. FM. Va por buen camino
Hola, gluglu:

Muchas gracias por tu respuesta. He probado a hacerlo así, pero ahora no puedo mostrarla con el ShowModal porque me sale un mensaje de error, 'Cannot make a visible window modal'.

Probé a mostrarla con Show, pero entonces no se cierra cuando el usuario pincha en Aceptar. ¿Tengo que poner algo en el procedimiento que devuelve el resultado?

Código:
procedure TMensaje.btnAcepClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

procedure TMensaje.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;
Esos son los procedimientos que tengo, no sé si debería cambiar alguno de ellos.

Saludos y muchas gracias,
M.
Responder Con Cita
  #4  
Antiguo 25-02-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
'Cannot make a visible Window Modal' te está indicando que algún sitio has creado ya previamente la ventana Mensaje.

Comprueba tus opciones de proyecto para ver si se crea automáticamente o no al inicio del programa.

Si no es así, es porque la estás creando en alguna parte de tu programa, y no lo tienes en cuenta que ya está visible porque previamente la has mostrado con Show.

En principio los procedimientos que indicas para salir son correctos.
__________________
Piensa siempre en positivo !
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventana hija en un marco (Frame o Panel) de la ventana padre birmain Varios 2 14-10-2007 09:27:56
Delphi 7.0 y MySql, Enviar informacion de ventana a ventana gozi Conexión con bases de datos 2 03-04-2006 05:28:41
Tamaños de objetos en ventana MDIChild CHiCoLiTa OOP 4 10-01-2006 16:50:21
Fallos al maximizar ventana MDIChild mazinger Varios 3 08-08-2005 14:23:00
tamaño ventana MDIChild ronson Varios 2 26-02-2004 15:15:22


La franja horaria es GMT +2. Ahora son las 17:46:48.


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