Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ShowModal que se esconde :( (https://www.clubdelphi.com/foros/showthread.php?t=49024)

xander 10-10-2007 21:54:03

ShowModal que se esconde :(
 
En algunas ocasiones, me ha sucedido que mando a mostrar una ventana como modal, pero la muy jija de su maiz se esconde detras del formulario principal o sepa su ma' donde, el caso es que como no se ve, el usuario piensa que ya se bloqueó el programa y lo tumba a la brava...

pero si en ese caso el usuario le diera Alt+Tab o se moviera entre las ventanas que tiene activas veria que si esta la ventana modal y que el programa no esta bloqueado, pero casi nadie tiene esa pericia...

Ya me tiene muy traumatizado este caso, no se porque demonios pase pero pasa, en contadas ocasiones, pero si sucede... soy solo yo o eso sucede cuando usas modales????

xander 10-10-2007 22:10:25

Por cierto, Olvide mencionar esto:

Tambien me sucedía esto cuando llamaba a ShowMessage... por eso tuve que cambiar las llamadas a ShowMessage por Application.MessageBox, y dejo de pasar con los mensajes pero ahora esta botando con las ventanas modales, y ahi si ya no se que moverle... :(

casacham 11-10-2007 01:29:39

La necesidad del ShowModal?
 
Hola xander, la verdad es que es rarisimo lo que cuentas. A veces la instruccion BringToFront podría ayudarte. De todas formas te escribo este hilo para que leas el libro de Ian Marteens Pamplona, Agosto de 1997 titulado La Cara Oculta de Delphi. Alli el capitulo 13 denominado "Técnicas de gestion de ventanas" te explica como puedes abrir ventanas dentro de un Tpanel colocado en la Form principal de tu aplicacion, creando y destruyendo estos objetos (ventanas) a traves de un procedimiento general para administrarlas. El punto es que de esa forma nunca se van a esconder detras de nada y le das un aspecto mucho mas profesional a tu aplicacion que haciendo que cada formulario se habra de manera modal, no es MDI, pero tampoco es una ventana separada como en la forma modal. Es muy muy interesante aprender esa gestion de ventanas. Creo que los que programamos en algun momento buscamos hacer algo asi. Tienes que darte la oportunidad de leer ese capitulo. Espero que este hilo te sirva de algo

Adios

xander 11-10-2007 03:14:18

Gracias casacham, Pero precisamente lo que dice el capitulo que mencionas del libro es lo que hago... crear ventanas, mostrarlas modalmente y luego liberarlas... el problema es que en algunas ocasiones pasa eso que menciono, me parece raro que solo yo lo haya notado...

Parece ser algo que sucede solo en WindowsXP... equipos con Windows2000 no me han reportado problemas hasta ahora... no encuentro nada que documente estos casos ni en la información que hay en Inglés por Internet... Ojalá algún maestro del API me pueda ayudar a desvelar el misterio

Saludos

Lepe 11-10-2007 09:49:00

si usas ventanas con fsStayOnTop en tu aplicación, esto puede ayudarte:
- Application.NormalizeTopMost
- Application.RestoreTopMost

Saludos

Alexis De la Cr 18-06-2015 20:43:21

En serio este tipo de error a muy pocos nos pasa?

Estimados colegas, a mi me sucede exactamente lo que se describe, pocas veces, pero sucede. De pronto cuando se muestra un form modal, este simplemente no llega a mostrarse, o quien sabe a donde se va, el caso es que aparentemente se bloquea la aplicación.

les muestro un ejemplo de codigo
Código Delphi [-]
if ACol=13 then
     begin
       with CreateMessageDialog('Esta usted seguro(a) de eliminar la Clave '+NextGrid1.Cell[0,ARow].AsString+', '+NextGrid1.Cell[2,ARow].AsString+' de la Comanda?', mtConfirmation,[mbYes, mbNo]) do
       try
         Position := poScreenCenter;
         Color := clwhite;
         Caption := 'Control de Comandas. Modificar Comanda.';
         if ShowModal=MrYes then
            begin
              NextGrid1.DeleteRow(ARow);
              NextGrid1.CalculateFooter();
              Button2.Enabled:=True;
              Button2.SetFocus;
            end;
       finally
          Free;
       end;
     end;

rara vez, resulta que no llega a mostrarse la ventana, no aparece por ningun lado, aun cuando se navegue entre las pestañas utilzando win + tab o alt+tab, ni minimizandolo y maximizandolo, etc. de plano tengo que cerrar la aplicacion a la brava.

Utilizo Delphi XE2 sobre windows 7 de 64 bits

Saludos


La franja horaria es GMT +2. Ahora son las 18:51:10.

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