Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2012
jjmtzhdz jjmtzhdz is offline
Registrado
NULL
 
Registrado: nov 2012
Posts: 3
Poder: 0
jjmtzhdz Va por buen camino
Cerrar Formulario

Hola. Soy nuevo en el Foro y espero que puedan ayudarme a despejar mi duda.

Cuento con un formulario (frmUno) con un botón que crea y muestra un nuevo formulario (frmDos). Mi problema es que no puedo cerrar el frmUno sin cerrar el frmDos.

Tengo lo siguiente:

Código:
procedure TfrmUno.btnCrearNuevoClick(Sender: TObject);
begin

   frmDos := TfrmDos.Create(nil);
   frmDos.Show;

   frmUno.Close; { <-- Al hacer esto se cierra el frmUno, pero llevándose consigo al frmDos. }

end;
Sé que puedo simplemente ocultar al primero con un frmUno.Hide; pero si hago esto, al cerrar el segundo formulario la aplicación no termina, ya que el primero queda ejecutándose.

¿Alguien me ayuda?
Responder Con Cita
  #2  
Antiguo 14-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jjmtzhdz y bienvenido a Club Delphi .

Si frmUno es el form principal, sencillamente termina la aplicación y por lo tanto frmDos (y cualquier otro que esté abierto) se cerrará también.

En cambio, funcionaría sin problemas si hicieras:
Código Delphi [-]
procedure TfrmDos.btnCrearNuevoClick(Sender: TObject);
begin
  frmTres := TfrmTres.Create(nil);
  frmTres3.Show;
  Close
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jjmtzhdz,

Revisa en el ejemplo anexo al formulario principal frmMain, el cual por opciones de menú crea a los formularios frmUno y frmDos permitiendo de esta forma abrir y cerrar selectivamente a cualquiera de estos, liberar en el evento OnClose de cada formulario sus recursos de memoria y finalizar la aplicación al momento de cerrar frmMain o usar la opción Exit.

Espero sea útil

Nelson.
Archivos Adjuntos
Tipo de Archivo: rar TestForm.rar (163,9 KB, 20 visitas)

Última edición por nlsgarcia fecha: 14-11-2012 a las 09:57:01.
Responder Con Cita
  #4  
Antiguo 14-11-2012
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
no puedes cerrar el formulario principal, porque estarias cerrando toda la aplicacion....
explica mejor que quieres hacer.... si lo que quieres es abrir formularios dentro del principal yo te recomendaria crear mdiform y luego crearles los formularios child(hijos)
Responder Con Cita
  #5  
Antiguo 17-11-2012
jjmtzhdz jjmtzhdz is offline
Registrado
NULL
 
Registrado: nov 2012
Posts: 3
Poder: 0
jjmtzhdz Va por buen camino
Hola. Muchas gracias por su ayuda.

Aprecio mucho su atención, pero el hecho es que no he resuelto el asunto. En los ejemplos que tan amablemente han mostrado, el formulario desde el cual se crea al segundo sigue en activo, y ese es precisamente el meollo de mi inquietud.

Lo que deseo hacer es que al crear y mostrar un segundo formulario el primero cierre totalmente, descargándolo por completo de la memoria. Algo parecido a lo que propone ecfisa, pero con sólo dos formularios.

Entiendo que al ser el primer formulario el principal, al cerrarlo cierre por completo la aplicación; pero tiene que haber alguna manera de pasar el "protagonismo" al segundo formulario; inclusive recuerdo haberlo hecho en el viejo VB6 con Show y Unload Me, si mi memoria no me falla. ¡En Delphi tiene que ser posible!
Responder Con Cita
  #6  
Antiguo 17-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jjmtzhdz.

Aunque creo que no es exáctamente lo que estas buscando, revisa este enlace: Change the MainForm at runtime?.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 17-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jjmtzhdz,

Cita:
Empezado por jjmtzhdz Ver Mensaje
Entiendo que al ser el primer formulario el principal, al cerrarlo cierre por completo la aplicación; pero tiene que haber alguna manera de pasar el "protagonismo" al segundo formulario; inclusive recuerdo haberlo hecho en el viejo VB6 con Show y Unload Me, si mi memoria no me falla. ¡En Delphi tiene que ser posible!
Revisa este código tomado del link http://www.swissdelphicenter.ch/torr...ode.php?id=665, que ecfisa sugirió:
Código Delphi [-]
// Cambia el formulario principal en Runtime.
procedure SetAsMainForm(aForm:TForm);
var
  P : Pointer;
begin
  // Dirección del Formulario Principal
  P := @Application.Mainform;
  // Cambia la Dirección del Formulario Principal
  Pointer(P^) := aForm;
end;
El código anterior permite cambiar el formulario principal en runtime y esta implementado en el ejemplo anexo en la forma que señalas en tu requerimiento.

Espero sea útil

Nelson.
Archivos Adjuntos
Tipo de Archivo: rar Change FormMain in Runtime.rar (168,2 KB, 27 visitas)
Responder Con Cita
  #8  
Antiguo 19-11-2012
jjmtzhdz jjmtzhdz is offline
Registrado
NULL
 
Registrado: nov 2012
Posts: 3
Poder: 0
jjmtzhdz Va por buen camino
La solución referenciada funcionó perfectamente.

Les agradezco mucho la atención, el tiempo y la calidad de sus respuestas; me han servido mucho.

Muchas gracias. Nos escribiremos pronto.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cerrar Formulario Red_Leon OOP 13 08-02-2010 10:22:07
cerrar formulario Patricio Varios 2 04-07-2008 23:52:27
Cambiar propiedad de componente del formulario padre al cerrar el formulario hijo jzginez OOP 5 22-06-2007 21:40:51
Cerrar conexión al cerrar formulario arantzal Conexión con bases de datos 5 09-08-2006 12:43:52
Cerrar formulario en uso locojoan API de Windows 1 21-06-2006 17:08:22


La franja horaria es GMT +2. Ahora son las 03:30:14.


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
Copyright 1996-2007 Club Delphi