Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2006
nachito_tuc nachito_tuc is offline
Miembro
 
Registrado: jul 2006
Ubicación: Tucuman
Posts: 17
Poder: 0
nachito_tuc Va por buen camino
Descargar form

Hola. El problema que tengo es que yo cierro los forms con nombreform.close, pero al llamarlo de nuevo, el formulario sigue como estaba, tengo un dbgrid y sigue con los datos que tenia, etc.
Como hago para "inicializar" el formulario de nuevo?

Saludos y gracias.

Nacho
Responder Con Cita
  #2  
Antiguo 06-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por defecto, cuando cierras un formulario, éste no se destruye, sólo se oculta. Para modificar este defecto utiliza el evento OnClose del formulario:

Código Delphi [-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por roman
Para modificar este defecto utiliza el evento OnClose del formulario
Discrepo con vos, ya que yo diría que eso es un comportamiento... no un defecto.

También añadir que luego, para mostrar el formulario tendrás que crearlo nuevamente, pues si haces solamente un Form1.Show, obtendrás un AccessViolation. Ya que el formulario se creará y destruirá dinámicamente, pues quitarlo de la lista de auto-create y crearlo siempre...

Por otro lado, si lo único que te interesa es limpiar el Grid, también podes valerte del evento OnShow, que se dispara cuando el formulario estaba oculto y se muestra, y en este, por ejemplo, cerrar el query que se muestra en el grid.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 06-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Je, je, veo que estás atento

Yo también concuerdo con eso, pero en realidad estaba jugando con las palabras. Ocultarse es el comportamiento por defecto (es decir, por default), luego entonces si se quiere otro comportamiento hay que cambiar ese defecto.



// Saludos
Responder Con Cita
  #5  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola roman: la verdad es un buen juego de palabras... ya se cómo justificarle a mi jefe o a mi esposa cuando les resalto algún su "defecto"..
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 06-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
mi jefe o a mi esposa
¿No viene a ser lo mismo?



Disculpa, no me pude contener

// Saludos
Responder Con Cita
  #7  
Antiguo 06-09-2006
nachito_tuc nachito_tuc is offline
Miembro
 
Registrado: jul 2006
Ubicación: Tucuman
Posts: 17
Poder: 0
nachito_tuc Va por buen camino
Gracias

Gracias. Creo que voy a optar por la 2da opcion, porque si tengo que volver a crearlo, etc ya se me complica y sobrepasa mis conocimientos novatos de delphi.

En visual basic yo hacia Unload(form), y luego con el show bastaba por mas que lo haya descargado. Para ocultarlo habia un método más "acertado" que se llamaba hide, pero bueno supongo q tener una oop mejor tiene sus precios.
Responder Con Cita
  #8  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por nachito_tuc
En visual basic yo hacia

No te preocupes ni te disculpes... todos hemos estado perdidos alguna vez

Cita:
Empezado por nachito_tuc
porque si tengo que volver a crearlo, etc ya se me complica y sobrepasa mis conocimientos novatos de delphi.
¡Animate!, cada reto te dejará expriencia y conocimiento:

Además, si solo vas a tener una instancia de Form1 creada, la cosa puede simplificarse aún mas:

Código Delphi [-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  Form1 := nil;
end;

// en el formulario principal o desde donde lo invoques:

procedure TFormMain.Button1Click(Sender : TObject);
begin
  if not Assigned(Form1) then
    Form1 := TForm1.Create(Application);
  Form1.Show;
end;

Tan sencillo como eso..
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por roman
¿No viene a ser lo mismo?
// Saludos
¡Amigo mío!, no se en tu caso... pero en mi casa, mando yo!!!!



(espero que mi jefa no vea esto... )
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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
Form modal deja que el form llamante tome el foco tata Varios 6 17-05-2006 11:51:37
Imposible hacer visible un form desde otro form SMTZ .NET 13 16-01-2006 21:41:08
Descargar Formulario monicasierrar OOP 8 29-09-2005 18:25:25
Llamar una form desde otra form!!! niogon Varios 2 30-09-2004 16:09:17
Descargar DBE brandolin Conexión con bases de datos 4 15-05-2004 03:07:21


La franja horaria es GMT +2. Ahora son las 20:13:54.


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