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 03-02-2006
tata tata is offline
Registrado
 
Registrado: feb 2006
Posts: 1
Poder: 0
tata Va por buen camino
Form modal deja que el form llamante tome el foco

Desde una form fsnormal que abro con ShowModal (ventana llamante) abro otro form fsnormal también con ShowModal (ventana llamada).
Pues bien, en un equipo con Windows XP soy capaz de provocar (a base de hacer clics con el ratón sobre la ventana primera intentando repoducir lo que el usuario debe hacer cuando ve que tarda en salir la ventana que espera) que la ventana llamante se quede con el foco y la ventana llamada se quede detrás. Tras esto puedo acceder a las dos ventanas de la misma aplicación, esto es, la ventana llamada no se comporta como modal.

¿Cómo es posible que la ventana llamada no se acuerde que es modal y permita esto?. ¿Dónde está fallando la gestión de ventanas?.

Gracias
Responder Con Cita
  #2  
Antiguo 03-02-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que dices, creo yo, se entendería mejor con algo de código. ¿Puedes proporcionar un ejemplo "funcional"?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 16-05-2006
josemmerida josemmerida is offline
Miembro
 
Registrado: nov 2003
Ubicación: Málaga(España)
Posts: 60
Poder: 21
josemmerida Va por buen camino
Unhappy ...y a mi...

Anda, pues a mi tambien me pasa.......

Vamos a ver (solo he reproducido este problema en winXP, en w2000 y en w9? nunca me ha pasado):

En la ventana principal hago

TapplicationCreateform(TventanaModal,VentanaModal);
Ventanamodal.Showmodal;
Ventanamodal.free;

Envidentemente, al hacer showmodal la ventana modal debe quedarse en primer plano, y no se debe poder acceder al la ventana principal.

Pues no(solo algunas veces ). La ventana modal queda detras de la ventana principal, pero solo se dibuja detras, porque efectivamente no tienes acceso a esta. Si picas con el raton en la modal se redibuja en primer plano y ya esta.....pero, si la modal es mas pequeña que la principal , no se puede tocar y al usuario le da la impresion de que el programa esta colgado.

Esta situacion ha empezado a preocuparme, pues vamos a migrar todos los equipos a wxp.

Socorro............

Y Saludos.
Responder Con Cita
  #4  
Antiguo 16-05-2006
Avatar de noshy
noshy noshy is offline
Miembro
 
Registrado: jul 2003
Posts: 139
Poder: 21
noshy Va por buen camino
A mi tambien me a pasado pero solamente en WinXP nunca en 98 ni en 2000. pero a mi me pasa con los showmessage(), das algun mensaje de error cion esta funcion y a veces en ves de permanecer en el foco se va atras de la ventana principal y queda todo colgado. Error de Windows XP?? lo mas probable.
__________________
\_--> NoShY <--_/
Responder Con Cita
  #5  
Antiguo 16-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Api de Windows

SetForegroundWindow

The foreground window is the window at the top of the Z order. It is the window that the user is working with. In a preemptive multitasking environment, you should generally let the user control which window is the foreground window. However, an application can call SetForegroundWindow if it wants to put itself into the foreground to display a critical error or information that requires the user's immediate attention. A good example is a debugger when it hits a breakpoint.
Código Delphi [-]
  applicationCreateform(TventanaModal,VentanaModal);
  SetForegroundWindow(Application.Handle);
  Application.ProcessMessages;
  Ventanamodal.Showmodal;
  Ventanamodal.free;

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 17-05-2006
josemmerida josemmerida is offline
Miembro
 
Registrado: nov 2003
Ubicación: Málaga(España)
Posts: 60
Poder: 21
josemmerida Va por buen camino
...el que sabe sabe....

...el que sabe, sabe....

Gracias lo probaré.
Responder Con Cita
  #7  
Antiguo 17-05-2006
Sick boy Sick boy is offline
Miembro
 
Registrado: may 2003
Ubicación: Cantabria
Posts: 245
Poder: 21
Sick boy Va por buen camino
Me preocupa mucho este tipo de problema, pero no soy capaz de reproducirlo.

Tambien puede pasar con los Showmessage???

Código:
  SetForegroundWindow(Application.Handle);
  Application.ProcessMessages;
Habria que hacer esto cada vez que llames a una ventana modal o un showmessage??

Y con los InputQuery, dialogs, etc....

Cita:
Pues no(solo algunas veces ). La ventana modal queda detras de la ventana principal, pero solo se dibuja detras, porque efectivamente no tienes acceso a esta. Si picas con el raton en la modal se redibuja en primer plano y ya esta.....pero, si la modal es mas pequeña que la principal , no se puede tocar y al usuario le da la impresion de que el programa esta colgado.
Me rectifico, releyendo el texto de josemmerida recuerdo que tengo una aplicación donde sucede esto, y nunca supe por qué. Como la aplicación es para uso interno y solo la utilizo yo, no me preocupa. Ademas, por si os sirve de algo, si utilizo ALT+TAB para volver a la aplicación, SI QUE VEO LA VENTANA MODAL ¿?¿?¿? y el programa continua funcionando.

Lo extraño es que esa ventana modal la utilizo en una aplicación que nunca ha tenido problemas.
La diferencia entre la que da problemas y la que no es que la que no da problemas es MDI.
En ambas aplicaciones la ventana es fsNormal, y se autocrea al iniciarse el programa. No libero la ventana al terminar (pues me interesa no destruirla).

NOTA: La llamada desde la MDI se hace desde una ventana fsChild
Intuyo que el problema ocurre cuando una ventana fsNormal llama a otra fsNormal como modal. ¿Qué opinais??

En cualquier caso, grave, bastante grave el problema.
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
Acceder a form modal desde módulo de datos jcheco Varios 3 31-01-2006 17:18:22
Form sin Foco TONIAM Varios 4 16-11-2005 22:58:54
Saber si una Form es modal Delfino Varios 3 18-09-2005 04:12:14
Poner color background del form cuando pierde el foco Cabanyaler Gráficos 4 25-11-2004 08:32:03
Form sin foco AndyG OOP 2 01-09-2004 14:46:36


La franja horaria es GMT +2. Ahora son las 06:42:19.


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