PDA

Ver la Versión Completa : Consulta acerca del manejo de formularios


ilichhernandez
24-11-2006, 16:14:24
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

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 [-] (http://www.clubdelphi.com/foros/#)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:


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...