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 24-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Formulario de Inicio de Sesión

Hola, tengo una aplicación que posee un formulario de inicio de sesión que se ajecuta antes de inicializar la aplicación(Application.Run). El problema es que dentro de la aplicación tengo necesidad de volver a ejecutar ese formulario en un momento determinado para cambiar de usuario y comenzar la aplicación desde el formulario principal del sistema y no se como hacerlo. agradecería cualquier ayuda al respecto.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 24-06-2011
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.

Simplemente llamándolo.

Por ejemplo:
Código Delphi [-]
procedure TElfrmQueSea.ButtonClick(Sender: TObject);
begin
  with TfrmInicioDeSesion.Create(Self) do
  try
    ShowModal;
  finally
    Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-06-2011 a las 18:05:57.
Responder Con Cita
  #3  
Antiguo 24-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Gracias por la ayuda.
Responder Con Cita
  #4  
Antiguo 24-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Problemas con el form de Inicio de Sesión

Hola de nuevo, en el hilo anterior no me expliqué bien, la respuesta del moderador me ayudó, pero hay algo que no me corre bien, yo tengo el siguiente código:

Código Delphi [-]
  Application.Initialize;
  frmAutenticacion:= TfrmAutenticacion.Create(Application);
  if frmAutenticacion.ShowModal=mrOk then
  begin
    Application.Initialize;
    Application.CreateForm(TfrmPrincipal, frmPrincipal);
    Application.CreateForm(TfrmPresenta, frmPresenta);
    Application.Run;
  end;

pero aunque en el formulario Autenticacion yo declaro frmAutenticacion.ModalResult:=mrOk el no entra a correr la aplicación. Agradecería cualquier ayuda al respecto.

Gracias de antemano.
Responder Con Cita
  #5  
Antiguo 24-06-2011
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 rubio Ver Mensaje
Hola de nuevo, en el hilo anterior
Hola,

He puesto este mensaje en el hilo original. No abras nuevos hilos para continuar lo que ya estás tratando en uno.

// Saludos
Responder Con Cita
  #6  
Antiguo 24-06-2011
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.

Probá de este modo:
Código Delphi [-]
  Application.Initialize;
  Application.CreateForm(TfrmPrincipal, frmPrincipal);
  Application.CreateForm(TfrmPresenta, frmPresenta);
  Application.ShowMainForm:= False;
  with TfrmAutenticacion.Create(nil) do
  try
    if ShowModal = mrOk then
    begin
      Application.ShowMainForm:= True;
      Application.Run;
    end;
  finally
    Free;
  end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 25-06-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Tienes que ver que si luego de hacer la asignación: frmAutenticacion.ModalResult := mrOk no debes de llamar al procedimiento Close del formulario. En ocaciones muchos cometen el siguiente error (yo lo hacía):
Código Delphi [-]
frmAutenticacion.ModalResult := mrOk;
frmAutenticacion.Close; // Close borra el resultado de ModalResult

Repito, tienes que fijarte que luego de hacer la asignación a la propiedad ModalResult, no llames a Close. Cuando asignas un valor a ModalResult, el formulario se cierra automáticamente por lo que no es necesario la llamada a Close.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 27-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Hola, gracias a ambos por las respuestas, no había respondido ya que estaba de descanso de fin de semana, ecfisa he probado la variante que me mandaste y cuando voay a asignar el valor a ModalResult (frmAutenticacion.ModalResult:=mrOk) me da el siguiente error:



después probé poniendo lo viejo que yo tenía y quitando el Close como lo dice Chris y me funcionó correctamente, vos tenes alguna idea de que puede ser?.

Gracias de antemano.
Responder Con Cita
  #9  
Antiguo 27-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
El error es el siguiente, parece que no se pegó bien:
raised exception class EAccessViolation with message 'Access violation at address004DD3DF in module 'OrdenesCompra'. Write of address 0000024C.
Responder Con Cita
  #10  
Antiguo 27-06-2011
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.

Mirá, yo no obtengo ninguna excepción así que supongo que el error lo está provocando TfrmPresenta. (unidad que desconozco y no incluí en mi prueba).

Comprobar si el error lo provoca TfrmPresenta es fácil, sólo desactivá la línea de creación:
Código Delphi [-]
  Application.Initialize;
  Application.CreateForm(TfrmPrincipal, frmPrincipal);
  //Application.CreateForm(TfrmPresenta, frmPresenta); // <-
  Application.ShowMainForm:= False;
  with TfrmAutenticacion.Create(nil) do
  try
    if ShowModal = mrOk then
    begin
      Application.ShowMainForm:= True;
      Application.Run;
    end;
  finally
    Free;
  end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 27-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Hola.

Quite frmPresenta tal y como me indicaste y vuelve a dar el error, te digo el error lo da en frmAutenticacion cuando le estoy asignando el valor a la propiedad ModalResult.

Código Delphi [-]
frmAutenticacion.ModalResult:=mrOk;

Ahora si lo hago de esta forma no me da error.

Código Delphi [-]
  Application.Initialize;
  frmAutenticacion:= TfrmAutenticacion.Create(Application);
  if frmAutenticacion.ShowModal=mrOk then
  begin
    Application.CreateForm(TfrmPrincipal, frmPrincipal);
    Application.Run;
  end
  else frmAutenticacion.Free;

Saludos.
Responder Con Cita
  #12  
Antiguo 27-06-2011
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
Cita:
el error lo da en frmAutenticacion cuando le estoy asignando el valor a la propiedad ModalResult.
Hola.

En lugar de hacer:
Código Delphi [-]
frmAutenticacion.ModalResult:=mrOk;

Hace:
Código Delphi [-]
Self.ModalResult:= mrOk;

O simplemente:
Código Delphi [-]
ModalResult:= mrOk;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 28-06-2011
rubio rubio is offline
Miembro
 
Registrado: mar 2009
Posts: 36
Poder: 0
rubio Va por buen camino
Gracias ecfisa, problema resuelto.
Responder Con Cita
  #14  
Antiguo 28-06-2011
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 cierto, puedes ahorrate el código si al botón con el que cierras le pones su propiedad ModalResult en mrOk. Esto lo puedes hacer en el inspector de objetos.

// Saludos
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
Formulario de Inicio de Sesión rubio OOP 2 24-06-2011 21:07:12
Inicio sesión php y firebird Poke PHP 13 23-12-2010 09:25:56
Ejecutar programa al inicio antes inicio sesion hibero Varios 0 07-02-2007 20:52:44
Determinar si ya se inició sesión roman PHP 5 26-08-2005 20:09:38
Inicio Sesión De Aplicación jsc Firebird e Interbase 4 27-01-2004 11:49:37


La franja horaria es GMT +2. Ahora son las 02:05:30.


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