Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2006
Avatar de ivanflores
ivanflores ivanflores is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
ivanflores Va por buen camino
Exclamation Usuarios Y Contraseñas

Hola a todos de nuevo.
quisiera ver si me pueden hechar una mano con mi problema.

Estoy realizando un programa para usarlo en mi trabajo... y quiero ponerle una ventana para accesar al sistema pidiendo nombre de usuario y contraseña debidamente almacenados en una base de datos en paradox, los campos que utilizo son usuario(campo clave) y password. Quiero lograr que al presionar el boton de aceptar valide los campos y si son iguales me deje accesar al sistema, en caso de que en tres intentos no se logre accesar se termina la aplicacion. Si los campos son erroneos(cualquiera de los dos) me indique un mensaje de "usuario o password incorrectos."
lo he intentado de la siguiente manera pero no me funciona como yo quiero.

Código Delphi [-]
unit Users;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,
  Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TUsuarios = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
end;

var
  Usuarios: TUsuarios;
  X:INTEGER;
  Y:INTEGER;

implementation

uses AdminUsCo;

{$R *.dfm}

procedure TUsuarios.Button1Click(Sender: TObject);
begin
  IF admiuc.Table1.findkey([edit1.Text])and(x<=3) then
  begin
    if admiuc.Table2.findkey([edit2.Text])AND(y<=3) then
    begin
      close;
    end
  end
  else
  begin
    x:=x+1;
    y:=y+1;
    edit1.Clear;
    edit2.clear;
    edit1.setfocus;
    messagedlg('USUARIO O CONTRASEÑA INCORRECTOS.'+#13+#10+ 'INTENTE DE NUEVO.',
     MTERROR, [MBOK],0)
  END;
  IF(X=3) THEN
  BEGIN
    MESSAGEDLG('NO SE PUEDE ACCESAR A SICSSA,
     "INTENTOS AGOTADOS".'+#13+#10+'!!PARA INTENTAR DE NUEVO VUELVA A EJECUTAR LA APLICACION.¡¡',MTINFORMATION,
      [MBOK],0);
    APPLICATION.TERMINATE;
  END;
end;

procedure TUsuarios.Button2Click(Sender: TObject);
begin
  APPLICATION.TERMINATE;
end;

end.

Hasta ahorita lo de los intentos si funciona pero al poner cualquier caracter en los edit ya no trabaja el mensaje de "usuario o contraseña incorrectos", si le pongo el usuario correcto y la contraseña incorrecta. no manda mensaje si le pongo el puro usuario correcto y el edit 2 en blanco si entra.
les agradeceria si pudieran hecharme una mano y decirme como lo puedo hacer o un codigo para esto.
de antemano muchas gracias.

Última edición por dec fecha: 07-11-2006 a las 01:35:44.
Responder Con Cita
  #2  
Antiguo 05-12-2006
JULIOCTORRESG JULIOCTORRESG is offline
Miembro
 
Registrado: sep 2006
Posts: 58
Poder: 18
JULIOCTORRESG Va por buen camino
esta es una opcion que utilizo

veo mucho codigo ...yo lo simplifico asi

el codigo para verificar los valores de las cajas de texto contra los almacenados en la tabla :

Código Delphi [-]
 if BaseDeDatos.TablaUsuarios.Locate('Usuario;Password',VarArrayOf([txtusuario.Text,TxtPassword.Text]),[]) then
          
// si esto es correcto ...coinciden los valores se ejecuta esto :
 
begin
            showmessage('Bienvenido '+BaseDeDatos.TablaUsuariosNombreUsuario.value);
            frmPrincipal.show;
end
 
//en caso contrario .....
else
begin
          ShowMessage('Error de Acceso');
 
       //incrementamos una variable GLOBAL previamente  declarada       e  
      //inicializada     ejemplo VarIntentos de tipo Integer
      
         inc(Intentos);
    
      // luego preguntamos por el numero de intentos realizados y si son 3     
     //cerramos la aplicacion........
        
if intentos < 3 then 
begin
          txtpassword.Text:='';
          TxtUsuario.SelectAll;
          txtusuario.SetFocus;
end
else aplication.terminate;
 
end;

ojo en mis aplicaciones si bien limito el acceso con este codigo no lo limito por numero de intentos ....el codigo que use se me ocurre en este momento pero creo que debe funcionar bien .....
avisas los resultados a ver que tal te va .....

Última edición por dec fecha: 05-12-2006 a las 17:50:41.
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
Contraseñas erick_jesus Conexión con bases de datos 2 29-05-2006 18:48:37
Contraseñas en Access diegolf Conexión con bases de datos 5 30-12-2004 10:58:31
Guardar contraseñas acrophet Conexión con bases de datos 3 25-11-2004 16:54:07
Contraseñas y Paradox Letty Conexión con bases de datos 1 01-12-2003 14:48:06
contraseñas y password alfgonvar Conexión con bases de datos 1 02-10-2003 15:31:32


La franja horaria es GMT +2. Ahora son las 09:30:24.


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