Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas MDI cerrar ventana (https://www.clubdelphi.com/foros/showthread.php?t=2927)

rafadrover 13-08-2003 11:35:15

Problemas MDI cerrar ventana
 
Hola, como siempre tengo otra vez problemas, tengo una aplicacion con ventanas MDI, en una de ellas, realizo una transaccion cuando la abro, ya que se realizan muchos cambios en la base de datos, y un error me podria dejar la BD (Interbase) en un estado inconsistente. Bueno, lo que quiero hacer es que cuando el usuario cierra la ventana o bien cambia a otra ventana MDI, le pregunte si quiere guardar los cambios o bien cancelar. Esto lo hago actualmente en el evento onDeactivate del form, asi cuando cambio de ventana me lo pregunta y guarda o no los cambios, pero el problema es que luego no cambia de ventana, ya que swe ha interrumpido la ejecucion de cuando salia de la ventana. Es decir cuando sale se llama a onDeactivate, se ejecuta este, pero luego no salta de ventana, sino que queda en la misma ventana.

Si alguien sabe como puedo arreglar este problema, agradeceria vuestros comentarios.

Gracias de antemano.

Lepe 13-08-2003 17:56:11

Saludos


Despues del tratamiento de Guardar, haz un simple

Ventana_Destino.setfocus

Si no sabes la ventana de destino cual es, lo mas facil es que cierres la ventana actual y dejes que la aplicación se encargue de seleccionar la ventana que tenga mas a mano.

Si esto no te sirve.... pregunta y ya buscaremos otra forma.

rafadrover 13-08-2003 18:44:25

No se la ventana de destino, ya que pulsan sobre un toolbar de la formMDIPadre o bien seleccionan desde un menu ventana.
Creo que lo de cerrar la ventana no funcionará, ya que he mirado si me crea la otra ventana a la qual se esta intentando acceder, pero no se crea, por tanto si la cierro me quedara en la formPadre o bien sobre la siguiente MDI activa, que puede ser la que busco o no.

Gracias de todasmaneras.

Seba.F1 28-01-2006 13:30:44

hola que tal ???
no se si entendi bien pero me parece que podes usar este codigo

Código Delphi [-]
procedure Tform1.Mostrar(AClass_TFormClass; Const AName:String);
var
   Ficha:TForm;
begin
       F:=Application.FindComponent(AName) as TForm;
       if Assigned(F) then
          F.show
       else
            AClass.Create(Application) ;
end;


La franja horaria es GMT +2. Ahora son las 20:25:17.

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