Delphi - cerrar forma anterior

 
Vista:

cerrar forma anterior

Publicado por jose andres (9 intervenciones) el 17/02/2003 15:50:48
Saludos!!

Mi pregunta es como puedo cerrar una forma anterior es decir en la primera forma mando llamar una segunda forma, pero lo que quiero es que cuando se despliegue esa segunda forma se cierre la primera forma por su atenciòn gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cerrar forma anterior

Publicado por Ernesto D'Spirito (706 intervenciones) el 18/02/2003 05:18:52
Puedes cerrar el formulario llamador desde el mismo lugar donde muestras al segundo formulario. Por ejemplo:

procedure TForm4.Button1Click(Sender: TObject);
begin
Form5.Show; // Muestra el formulario Form5 en modo asíncrono (la ejecución continúa)
Close; // Cierra el formulario Form4
end; // recién después que termine este evento el usuario podrá editar en Form5

Si quieres una solución más elegante, el formulario llamado puede tener un método público Mostrar que reciba el llamador como parámetro:

procedure TForm5.Mostrar(Llamador: TForm);
begin
Show; // Muestra el formulario Form5 en modo asíncrono (la ejecución continúa)
if Llamador <> nil then Llamador.Close; // Cierra el formulario llamador
end;

Entonces la llamada para mostrar al formulario ahora sería:

procedure TForm4.Button1Click(Sender: Tobject);
begin
Form5.Mostrar(Self); // Muestra el formulario Form5 y cierra este formulario
end;

En los ejemplos he estado asumiendo que el formulario llamado ya está creado. Si los formularios llamados se crean dinámicamente, entonces tal vezn en lugar del método mostrar sería más adecuado pasar el formulario llamador como parámetro al constructor.

Es importante que notes que cuando el formulario principal se cierra, la aplicación finaliza. No recuerdo muy bien como era, pero creo que la solución consistía en usar un formulario principal que se hacía invisible con la API de Windows, de modo que el componente todavía crea que está visible, y entonces no termine la aplicación. Tendrías que buscar ese truco en la red.

Espero que mis comentarios te resulten de utilidad.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar