Tema: forma login
Ver Mensaje Individual
  #3  
Antiguo 14-06-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Reputación: 19
radenf Va por buen camino
Veo que no has logrado solucionar tu problema, algo que a muchos nos puso alguna vez de cabeza. Te incluyo el código que yo uso en mis aplicaciones, aportado hace mucho tiempo por Caral,que funciona de maravillas.
Primero debes tener una base de datos con una tabla llamada usuarios, que contenga los campos nombre ( string o varchar = 40) y clave ( string o varchar = 20). En el form del login que llamarás FLogin debes poner un edit para el nombre que llamarás EUsuario y otro para la clave que llamaras EClave. Colocarás dos buttons, Ok y Cancel y un Query que llamarás ADLogin, conectado al datasource de la tabla usuarios. En el string del Query debes colocar la siguiente consulta sql:

Código SQL [-]
Select nombre, clave
From usuarios

y utilizar el siguiente código en el Form de tu login

Código Delphi [-]
var
  FLogin: TFLogin;
  Usuario, Nombre : String;
  LoginOK : boolean;
  consulta : string;
  msg : String;
  cuenta: Integer;

  implementation

uses TuFormPrincipal;


{$R *.dfm}

procedure TFLogin.FormCreate(Sender: TObject);
begin
Cuenta := 0;
Usuario := '';
Nombre := '';
end;

procedure TFLogin.BtnOkClick(Sender: TObject);
  
begin
consulta := '';
ADLogin.Close;
ADLogin.SQL.Clear;
if EUsuario.Text = '' then
begin
MessageDlg('Ingrese Nombre de Usuario ',mtWarning, [mbOk], 0);
EUsuario.SetFocus;
exit;
end
else if EClave.Text = '' then
begin
MessageDlg('Contraseña no válida ',mtWarning, [mbOk], 0);
EClave.SetFocus;
exit;
end
else
consulta := 'SELECT * FROM usuarios WHERE Nombre = ' +
QuotedStr(EUsuario.Text) + ' AND Clave = ' +
QuotedStr(EClave.Text);
ADLogin.SQL.Add(consulta);
ADLogin.Open;
if ADLogin.Eof then
begin
Cuenta := Cuenta + 1;
MessageDlg('Usuario ó Contraseña no válidos  ', mtWarning, [mbOk], 0);
EUsuario.Clear;
EClave.Clear;
EUsuario.SetFocus;
exit;
end
else
begin
EUsuario.Clear;
EClave.Clear;
TuFormPrincipal:=TTuFormPrincipal.Create(self);
try
FLogin.Visible:= False;
TuFormPrincipal.ShowModal;
Finally
TuFormPrincipal.Free ;
end;
end;
end;
procedure TFLogin.BtnCancelClick(Sender: TObject);
begin
LoginOK :=False;
Close;
end;


end.

En la barra superior de Delphi, en Project/Options/MainForm deberás seleccionar FLogin.
Recuerda que TuFormPrincipal corresponde al nombre del Form de tu aplicación y deberás cambiarlo por el que tú uses.
Espero haber podido ayudarte. Prueba y nos cuentas.

Salu2 y suerte
Responder Con Cita