Como cerrar el formulario de acceso al sistema

Estoy aprendiendo a programar, tengo un 1º formulario que controla el ingreso de usuarios, si la clave es correcta abre el 2º formulario donde está el menú principal, mis preguntas son:
¿Cómo hago para cerrar el formulario de acceso a usuarios, una vez ingresado al formulario del menu principal?
El 1º formulario tiene showwindows =2 y lo establecí en el administrador de proyectos como principal, porque necesito hacerlo ejecutable, el 2º formulario tiene showwindows =2 porque es donde está el menú, ¿es correcto trabajar de esta forma?
Gracias por la ayuda prestada.

2 respuestas

Respuesta
1
Si, lo que haces es correcto. De hecho es cuestión de gustos.
Lo único que te queda por hacer es decir en el primer formulario form1 (en el botón, o donde lo hayas estipulado):
Thisform. Release
do form form2
Hola experto, estoy llamando el segundo formulario desde un botón probé lo que me indicaste y no me funciono.
Muéstrame lo que tienes en el botón "login" o "aceptar" en tu form1
busca los usuarios y las claves en una tabla
IF thisform.usuario.Value = RTRIM(usuario.nombre) AND thisform.txtcla.Value = rtrim(usuario.clave)
    SEEK thisform.usuario.value        
    tipou = tipo                          && variable para controlar en el menu el tipo usuario
    thisform.release
    DO FORM "principal"
ELSE
    MESSAGEBOX("Clave Incorrecta",0+48,"Error")
    thisform.txtcla.Value =""
    thisform.txtcla.SetFocus
Endif
Sugiero lo siguiente:
1. No pongas "do form principal" en el botón de tu form1.
2. Y crea una nueva variable de tipo pública que puedas inicializar en 0 ó 1, dependiendo de si el usuario logró entrar (1) ó no pueda entrar (contraseña incorrecta por tanto valor 0).
3. Crea un prg y defínelo en tu proyecto como principal ó punto de inicio. Escribe allí algo como esto:
*-* PRG Principal
Public VarPublica as integer
varPublica=0
DO FORM form1
READ EVENTS        
IF varPublicar=1
    DO FORM form2.scx
    READ EVENTS
ENDIF
4. El botón de tu form1 quedaría así:
IF thisform.usuario.Value = RTRIM(usuario.nombre) AND thisform.txtcla.Value = rtrim(usuario.clave)
    SEEK thisform.usuario.value        
    tipou = tipo                          && variable para controlar en el menu el tipo usuario
    varPublica=1    
    thisform.release
    clear events    
ELSE
    MESSAGEBOX("Clave Incorrecta",0+48,"Error")
    varPublica=0
    thisform.txtcla.Value =""
    thisform.txtcla.SetFocus
Endif
Me avisas.
Respuesta
1
Primera pregunta
Thisform. Release
No bueno si debe de ser thisform. Release, la verdad es que yo así lo ago, por ejemplo donde tu abres el otro formulario lo que tienes que hacer es
Por ejemplo
if calve_acceso = "hola"
         do form segundo_formulario
         Thisform. Release
Endif
Eso debe de ir algo así

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas