Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Consulta acerca del manejo de formularios (https://www.clubdelphi.com/foros/showthread.php?t=37865)

ilichhernandez 24-11-2006 16:14:24

Consulta acerca del manejo de formularios
 
Hola estimados colegas, estoy trabajando en una aplicacion que realiza varios cambios entre formularios, lo que me sucede es que tengo un formulario que llama a un segundo y este a un tercero y se supone que desde el tercero .....ya me enrede y supongo que ustedes tambien....
Mejor lo explico asi :

Formulario1 ----> Formulario2 ----> Formulario3
Formulario3 ----> Formulario2 ----> Formulario1

Ahi si se entiende.... los formularios los llamo con
Código Delphi [-]
formulario.showmodal; 
Formulario.close;


asi llamo los diferentes formularios..... pero cuando desde el 3 me quiero devolver al 2 se va directamente al 1 aun cuando tengo un
Código Delphi [-]form2.showmodal; form3.close;


y segun yo debiera funcionar pero realmente no se que sera.....

Bueno cualquier ayuda se agradecera.....


Saludos y gracias e antemanos.:)

Lepe 24-11-2006 17:03:38

No he hecho la prueba, pero en principio, para la vuelta:

Formulario3 ----> Formulario2 ----> Formulario1

no debería hacer falta ningún código. sólo cerrar el formulario activo.

Saludos

ilichhernandez 24-11-2006 18:07:38

que raro.... pero influirá en algo que coloque showmodal o tendre que utilizar solo show....

AzidRain 24-11-2006 18:34:14

Lo que puedes hacer es que cada dialogo que llamas sea una "propiedad" del anterior. Por ejemplo:

Código Delphi [-]
Tdialogo3=class(TForm)
end;
 
Tdialogo2=class(TForm)
  dialogohijo: TDialogo3;
end;
 
Tdialogo1=class(TForm)
  dialogohijo: TDialogo2;
end;

De manera que al iniciar el primer dialogo en mostrarse es el TDialogo1, en el momento que lo necesites muestras el dialogo2 con un ShowModal. En el código de dialogo2 llamas al dialogo3 con otro showmodal. De esta forma si cierras dialogo3 no puede cerrar a su vez a su "papá" (dialogo2) y así sucesivamente.

Por otro lado, si usas Show en lugar de showmodal, la ventana queda "flotando" y puedes seguir trabajando con la aplicación, pero en ese caso tendrías que verificar que no se permita abrir 2 instancias del mismo diálogo. De hecho regularmente un dialogo siempre es modal, ya que su trabajo es solicitar datos para realizar una acción.

Nos ayudaria su pusieras algo de código o nos indicaras precisamente que quieres hacer.

luisgutierrezb 24-11-2006 23:23:37

a mi me paso eso una vez, y era porque tenia unos bitbtn y como tenian el modalResult := mrOk entonces abria el otro, lo cerraba pero oh! sorpresa como el modalresult cierra la forma me regresaba al primero, no se que botones uses, pero a lo mejor por ahi puede ir...


La franja horaria es GMT +2. Ahora son las 16:08:44.

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