Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   form2 cerrar el form1 (https://www.clubdelphi.com/foros/showthread.php?t=62445)

ingabraham 23-12-2008 22:12:53

form2 cerrar el form1
 
es algo sencillo

tengo 2 form

el form1 abro el form2 . ok

y necesito q una vez abierto el form2 cerrar el form1 totalmente, q no me quede ni en memoria ni oculto.

gracias es sencillo pero me esta complicando las cosas.

rgstuamigo 23-12-2008 22:42:29

Esto en el form2
Código Delphi [-]
Uses Unit1,...
.
.
.
.
.
form1.Close;
end;
y esto en el form1 en su evento OnClose para que se Libere
Código Delphi [-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
;)

rgstuamigo 23-12-2008 22:48:03

Ahora pues si quieres que se cierre el form1 al momento de mostrar el form2 pues simplemente en el evento OnShow del form2 haces:
Código Delphi [-]
procedure TForm2.FormShow(Sender: TObject);
begin
Form1.close;
end;
pero no te olvides de poner el otro evento en el Form1 que te puse para que se libere;;)
Edito: esto solamente si el form1 no es el form principal, yo estoy asumiendo que ni el form1 ni el form2 ninguno de ellos son el form principal, por que si le das close al form principal se cierra toda la aplicasion. mucho OJO con eso.
Saludos..

RolphyReyes 23-12-2008 22:48:10

Otra Alternativa
 
Saludos

Este código me funciona:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Application);
  Self.Free;
  Form2.ShowModal;
end;

Como ves antes de mandar el Modal del Form2, libero el Form1, entonces cuando cierre el Form2 para cerrar la aplicación:
Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Application.Terminate;
end;

Prueba y reporta....

PepeLolo 24-12-2008 01:25:56

Cita:

Empezado por ingabraham (Mensaje 332052)
es algo sencillo

tengo 2 form

el form1 abro el form2 . ok

y necesito q una vez abierto el form2 cerrar el form1 totalmente, q no me quede ni en memoria ni oculto.

gracias es sencillo pero me esta complicando las cosas.

Hacer se puede hacer de la forma en la que ya te han explicado. Hay una cosa que no entiendo y es ese comportamiento de los formularios en una aplicación ¡para mí, algo estas haciendo mal o estas un poco liado!:confused:

bueno ya contaras

ingabraham 07-01-2009 18:58:11

Cita:

Empezado por RolphyReyes (Mensaje 332061)
Saludos

Este código me funciona:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Self.Free;
Form2.ShowModal;
end;





Como ves antes de mandar el Modal del Form2, libero el Form1, entonces cuando cierre el Form2 para cerrar la aplicación:

Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;





Prueba y reporta....

gracias

este codigo si me funciona . pero me aparece errror al cerrar con el application.terminate

el error es un problema en memoria read direcc

ingabraham 07-01-2009 19:11:13

Cita:

Empezado por rgstuamigo (Mensaje 332060)
Ahora pues si quieres que se cierre el form1 al momento de mostrar el form2 pues simplemente en el evento OnShow del form2 haces:

Código Delphi [-]procedure TForm2.FormShow(Sender: TObject);
begin
Form1.close;
end;



pero no te olvides de poner el otro evento en el Form1 que te puse para que se libere;;)
Edito: esto solamente si el form1 no es el form principal, yo estoy asumiendo que ni el form1 ni el form2 ninguno de ellos son el form principal, por que si le das close al form principal se cierra toda la aplicasion. mucho OJO con eso.
Saludos..


nada
ya coloque el codigo con la liberacion
y nada
al abrir el form 2 se cierra todo


La franja horaria es GMT +2. Ahora son las 00:50:25.

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