Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo cerra un form sin cerrar los demás? (https://www.clubdelphi.com/foros/showthread.php?t=68214)

Master23 01-06-2010 06:04:42

¿Cómo cerra un form sin cerrar los demás?
 
Lo que pasa es que en la aplicación tengo un Login de usuario , cuando el usuario entra al programa los datos correctos ,estos deben cerrar el login y abrir el form2 que es el que ya contiene la aplicación. El problema está , en que cuando cierro el login form1 se cierran todos, entonces intenté hacer un hide al form1 y todo bien desaparece el 1 y queda el 2 abierto pero cuando minimizo el 2
desaparece y no sé que puedo hacer . espero sus respuestas gracias de ante mano.

MAXIUM 01-06-2010 06:29:25

En principio, Form2.Visible:= False;

Cuando el logeo es correcto, ejecutar el siguiente código
Código Delphi [-]
Form2.Visible:= True;
Form2.Update;
Form1.Visible:= False;

Y cuando cierres en Form2, en el procedimiento de Cerrar, debe colocar Form1.Close;

Neftali [Germán.Estévez] 01-06-2010 10:54:41

Supongo que tu form de Login debe estar como principal.
Otra opción es colocar el Form2 como principal y desde ese mostrar el de login. En ese caso puedes cerrar el de Login sin que se cierre la aplicación.

bosster_018 01-06-2010 23:58:38

1 Archivos Adjunto(s)
Tu solución, aunque no muy eficáz, puede ser la de poner tu formulario de "Registrar" como secundario o después de los otros formularios que tengas.

Todos tus formularios (excepto el de Registrar) deben estar invisibles y al momento de aceptar el registro, recien se visualiza, al mismo tiempo que el formulario de registro se hace invisible.
Aquí un ejemplo que hice ahorita:

Pd: No soy muy bueno con esto :p:

Ventana de verificacion de registro

Contraseña = obvio es "gg" :P

Pero también he leído muchas veces que este método, no es el más eficáz ni el más seguro :confused:...
No entendí muy bien, pero la mejor forma de hacerlo es desde el proyecto. Iniciando el formulario 2 (sin crear los otra formularios), para luego llamar a la creación de los otros formularios.

Como te mencionó Neftali:

Cita:

Supongo que tu form de Login debe estar como principal.
Otra opción es colocar el Form2 como principal y desde ese mostrar el de login. En ese caso puedes cerrar el de Login sin que se cierre la aplicación.
Si pueden aclarenme esto... Por favor ;)

OscarBravo 02-06-2010 01:46:11

Hola.
Tengo una aplicación que llama un formulario de login, que es parecido a lo que tu quieres. Lo que hago es llamar al formulario de login en el evento Show del formulario principal asi: (Claro que mi aplicación es MDI)

procedure TFrmMain.FormShow(Sender: TObject);
begin
If FrmPassword.ShowModal = MrOk Then Begin
.
.//aqui colocas el código que valida si el susario digitado existe...
.Else //Es porque el usuario no existe, entonces sacas los mensajes necesarios,

//
Donde FrmMain es el formulario principal y FrmPassword es el formulario de login
Espero haberte ayudado...

Master23 02-06-2010 16:39:33

Cita:

Empezado por OscarBravo (Mensaje 365906)
Hola.
Tengo una aplicación que llama un formulario de login, que es parecido a lo que tu quieres. Lo que hago es llamar al formulario de login en el evento Show del formulario principal asi: (Claro que mi aplicación es MDI)

procedure TFrmMain.FormShow(Sender: TObject);
begin
If FrmPassword.ShowModal = MrOk Then Begin
.
.//aqui colocas el código que valida si el susario digitado existe...
.Else //Es porque el usuario no existe, entonces sacas los mensajes necesarios,

//
Donde FrmMain es el formulario principal y FrmPassword es el formulario de login
Espero haberte ayudado...


Creo que con eso ya me llego la idea de como hacer el trabajo muchas gracias.

naty_prog 07-11-2012 05:26:57

problema con el cierre de los forms
 
hola programadores :), recurro a uds porque tengo un problema con mi sistema.les cuento...tengo un form (form_correlativas),el cual muestra información de varias tablas, dicha información esta sujeta a modificarse por medio de los bitbtn que posee el mismo.mas o menos para darles una idea,la información que maneja son materias a las que debo agregarles correlativas.los bitbtn que uso son: uno para añadir, otro para vista previa y otro para eliminar correlatividades a esas materias;cuando realizo un alta,el sistema me abre otro form (form_nueva_correlativa) para ejecutar un ingreso, el cual posee otro bitbtn (GUARDAR) para guardar el nuevo registro. el problema surge recien despues de añadir o eliminar una correlativa, el formulario que estaba anteriormente (form_correlativas), se cierra,siendo que no debe hacerlo,y no encontramos el error. el codigo del bitbtn (GUARDAR) del form_ que tengo para agregar por si el problema esta alli es el siguiente:

Código Delphi [-]
procedure TForm_nueva_correlativa.BitBtn_guardar_new_correlativaClick(
  Sender: TObject);
begin

//
dm.IBDataSet_CorrelativasTIPO.Value:=ComboBox_nueva_correlativa_tipo.Text;
dm.IBDataSet_CorrelativasESTADO_CORRELATIVIDAD.Value:=combobox_nueva_correlativa_condicion.Text;
dm.IBDataSet_CorrelativasCORRELATIVA.Value:=DBLookupComboBox_mat_correlativa.Text;
dm.IBDataSet_CorrelativasID_MATERIA.Value:=materia_actual;
dm.IBDataSet_CorrelativasID_MATCORRELATIVA.Value:=DBLookupComboBox_mat_correlativa.KeyValue;
dm.IBDataSet_Correlativas.Post;
dm.IBTransaction_Sistema.CommitRetaining;
dm.IBDataSet_Correlativas.close;
dm.IBDataSet_Correlativas.Open;
dm.IBQuery_Correlativas_regular_rendir.Close;
dm.IBQuery_Correlativas_regular_rendir.Open;
dm.IBQuery_Correlativas_Regular_cursar.Close;
dm.IBQuery_Correlativas_Regular_cursar.Open;
dm.IBQuery_Correlativas_Aprobada_rendir.Close;
dm.IBQuery_Correlativas_Aprobada_rendir.Open;
dm.IBQuery_Correlativas_Aprobada_Cursar.Close;
dm.IBQuery_Correlativas_Aprobada_Cursar.Open;

Form_nueva_correlativa.Close;
Form_correlativas.Show;


end;

Insisto,no se si el problema vendra de alli,o sera en otra parte del codigo.desde ya les agradezco su ayuda.¡¡¡¡muchas gracias !!!!!!

ecfisa 07-11-2012 11:03:20

Hola naty_prog.

Selecciona el TBitBtn (el del nombre difícil :)) y desde el Object inspector, a la propiedad ModalResult del mismo, asignale la constante mrNone.

Saludos.

naty_prog 07-11-2012 12:23:20

respuesta al problema de cierre de los form
 
hola ecfisa,te comento que el problema esta resuelto :o.muchas gracias por la ayuda.hasta la proxima.saludos^\||/


La franja horaria es GMT +2. Ahora son las 07:54:15.

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