Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Sobre ventana de Password (https://www.clubdelphi.com/foros/showthread.php?t=9643)

silviodp 28-04-2004 15:16:37

Sobre ventana de Password
 
Quiero que en mi aplicación me aparezca antes que la ventana principal de mi programa una form que pida nombre de usuario y contraseña, que controle la entrada de un usuario al mismo.
Que propiedades tengo que darle ha ésta para que haga lo que quiero?, en que evento?, creo que tendría que crearla de forma modal, pero la verdad es que probé varias maneras pero no funciona.
Gracias.

__cadetill 28-04-2004 15:21:01

Hola

Esto se ha preguntado en varias ocasiones en los foros

Tirando un poco de la búsqueda, he encontrado este hilo

Espero te sirva

silviodp 28-04-2004 17:11:05

Sobre ventana de Password
 
Cadetill:
estuve viendo el hilo al que te referias pero no me quedó claro la parte cuando creo el fromulario de forma modal, ya que me da error cuando ejecuto el programa.
El código que puse es el siguiente:
Código:

Begin

//otras sentencias: Creaciones de Form etc,...
...
...
...

FAcceso:=FAcceso.Create(Application);
FAcceso.ShowModal;

Application.Run;

end.

El error que me da cuando quiero compilar es el siguiente:
'Cannot make a visible windows modal'
Gracias.

Silvio.-

silviodp 28-04-2004 17:14:21

Sobre ventana de Password
 
Perdón transcribí mal ésta línea:
Código:

FAcceso:=TFAcceso.Create(Application);

roman 28-04-2004 17:16:09

Cita:

Empezado por silviodp
El error que me da cuando quiero compilar es el siguiente:
'Cannot make a visible windows modal'

Dudo que el error te lo de al compilar pero de cualquier manera asegúrate que la propiedad Visible de FAcceso sea false.

// Saludos

silviodp 28-04-2004 20:49:24

Sobre pregunta de Password
 
Román:
si la propiedad Visible está en Flase.
Lo probé de las dos formas.

Silvio.-

jachguate 28-04-2004 20:57:12

Y el FormStyle, es un fsNormal???

jachguate 28-04-2004 21:04:42

Es conveniente que revises también el código del evento OnCreate de tu form, no sea que alli lo estes poniendo visible o llamando a su método show...

Hasta luego.

;)

silviodp 28-04-2004 22:12:23

Sobre ventana de password
 
Las propiedades del Form están así:

FormStyle:=fsNormal
Visible:=True
Project -> Options -> Auto-Create Form.

Silvio.-

jachguate 28-04-2004 22:19:40

En primer lugar, quitalo de los Autocreate Forms, pues tengo entendido que las estas creando "a mano" con FAcceso:=FAcceso.Create(Application);

Ademas, pone su propiedad visible a False. Salvo que estes alterando el valor de esta propiedad, o llamando a su método Show/ShowModal mas de una vez, no tendrias porque obtener el mensaje de error.

silviodp 29-04-2004 22:55:31

Sobre ventana de Password
 
Hola, ya solucioné el problema de la ventana modal, pero ahora lo que no puedo hacer es controlar la entrada al programa ya muestro los mensajes en caso de el susuario o la pass sean incorrectas pero entra lo mismo.
El código de mi ventana modal es:
Código:

procedure TForm23.EntrarClick(Sender: TObject);
begin
  Modelodatos.TblLogin.Active:=True;
  If Modelodatos.TblLogin.Locate('Usuario',User.Text,[]) Then
  begin
    If ModeloDatos.TblLogin.FieldByName('Clave').AsString<>Pass.Text Then
    ShowMessage('Clave Inconrrecta');
    Pass.SetFocus;
  end
  else
  ShowMessage('usuario inexistente');
  User.SetFocus;
end;

Gracias.

Silvio.-

jachguate 29-04-2004 23:00:46

Pero aqui debiera quedarse en la misma ventana, y no "pasar" como vos le decis... aun cuando el usuario y password sean correctos. Otra vez creo que no estas dando la información completa. :(

__cadetill 29-04-2004 23:02:08

Pero, es que, a ver, el control de entrar o no en la app lo has de hacer desde el DPR del proyecto, NO desde el form que lanzas para capturar user/pass

Mirate nuevamente el hilo que te mencioné para ver como controlar eso

silviodp 30-04-2004 00:02:22

Sobre ventana de Password
 
Si el usuario y la pass son correctas también entra al programa..., dije que lo hacía SIEMPRE.
Y desde el proyecto como tengo que hacerlo porque al hilo donde explica lo hace igual.
Es:
Código:

var
 n:Variant;
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TModeloDatos, ModeloDatos);
  Application.CreateForm(TForm22, Form22);
  ModeloDatos.TblEmpresa.Active:=True;
  n:=ModeloDatos.TblEmpresa.FieldValues['Nombre'];
  Form1.Caption:='BIENES DE USO 1.0'+'  -  '+n;
  ModeloDatos.TblEmpresa.Active:=False;
  Form23:=TForm23.Create(Application);// lo creo
  Form23.ShowModal; //y lo muestro.-
  Application.Run;
end.

Gracias.

Silvio.-

__cadetill 30-04-2004 00:39:00

no se tu, pero......

Cita:

Empezado por silviodp
Código Delphi [-]
var
 n:Variant;
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TModeloDatos, ModeloDatos);
  Application.CreateForm(TForm22, Form22);
  ModeloDatos.TblEmpresa.Active:=True;
  n:=ModeloDatos.TblEmpresa.FieldValues['Nombre'];
  Form1.Caption:='BIENES DE USO 1.0'+'  -  '+n;
  ModeloDatos.TblEmpresa.Active:=False;
  Form23:=TForm23.Create(Application);// lo creo 
  Form23.ShowModal; //y lo muestro.-
  Application.Run;
end.

Cita:

Empezado por cadetill
Código Delphi [-]
  Application.Initialize;
  // DataModule que da acceso a la conexion
  Application.CreateForm(TBDades, BDades);

  Login := TLogin.Create(Application);
  try
     try
        Respuesta := Login.ShowModal;
     finally
            FreeAndNil(Login);
     end;
  except
       ShowMessage('error creando form');
  end;

  if Respuesta = mrOK then
   begin
        Application.CreateForm(TfmMenu, fmMenu);
        Application.Run;
   end
  else FreeAndNil(BDades);

Yo veo algo de diferencias entre tu código y el propuesto en el hilo mencionado ;)

silviodp 30-04-2004 00:47:53

Sobre ventana de Password
 
Si es cierto, no era ese el código que yo había visto, perdón.-
Voy a probar con ese.
Gracias.

Silvio.-

silviodp 30-04-2004 13:58:15

Sobre ventana de Password
 
Cadetill:
por que cuando escribo el código:
Código:

begin
  Application.Initialize;
  Application.CreateForm(TModeloDatos, ModeloDatos);
  Application.CreateForm(TForm22, Form22);
  ModeloDatos.TblEmpresa.Active:=True;
  n:=ModeloDatos.TblEmpresa.FieldValues['Nombre'];
  Form1.Caption:='BIENES DE USO 1.0'+'  -  '+n;
  ModeloDatos.TblEmpresa.Active:=False;
  Form23:=TForm23.Create(Application);
  Form23.ShowModal;
  if Form23.ShowModal=mrYes then
  begin
        Application.CreateForm(TForm1, Form1);
        Application.Run;
  end

Y quiero ejecutar me da el siguiente error: [Error] CStock.dpr(43): Undeclared identifier: 'mrYes'.
Gracias.

Silvio.-

__cadetill 30-04-2004 15:21:21

Cita:

Empezado por silviodp
Y quiero ejecutar me da el siguiente error: [Error] CStock.dpr(43): Undeclared identifier: 'mrYes'.

Si buscas un poco en la ayuda de Delphi, verás que necesitas la unit Controls

Cita:

Empezado por Delphi Help
TModalResult represents the return value from a modal dialog.

Unit

Controls


silviodp 30-04-2004 22:33:56

sobra ventana de Password
 
Podrían decirme si éste código está bien o le falta algo, está asociado al botón que tengo en mi ventana de password, el cual tiene en la propiedad ModalResult el valor mrYes;
Código:

procedure TForm23.EntrarClick(Sender: TObject);
begin
  Modelodatos.TblLogin.Active:=True;
  If Modelodatos.TblLogin.Locate('Usuario',User.Text,[]) Then
  begin
    If ModeloDatos.TblLogin.FieldByName('Clave').AsString<>Pass.Text Then
      ShowMessage('Clave Incorrecta');
      Pass.SetFocus;
  end
  else
  ShowMessage('usuario inexistente');
  User.SetFocus;
end;

Gracias.

Silvio.-

roman 30-04-2004 22:48:06

Este es el mismo código que el expuesto en el mensaje #11 (por tí) y sinceramente el compilador será más eficaz que nosotros para detectar si está bien o mal.

// Saludos


La franja horaria es GMT +2. Ahora son las 09:52:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi