Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Crear Varios usuarios a partir de mi codigo (https://www.clubdelphi.com/foros/showthread.php?t=81610)

feliz-58 29-11-2012 19:23:41

Crear Varios usuarios a partir de mi codigo
 
Este es mi codigo:

Código Delphi [-]
procedure Tiniciarsesion.BitBtn1Click(Sender: TObject);

begin

if
edit1.Text<>'usuario1'

then
showmessage('Acceso Denegado, Su Nombre de Usuario es Incorrecto');

if
edit1.Text='usuario1'

then

begin

if
edit2.Text<>'1234'

then
showmessage('Acceso Denegado, Su Contraseña es Incorrecta') ;

if
edit2.Text='1234' 

then
principal.Show;
edit2.Clear;

end;
end;

Pero es de un solo usuario, como le agrego dos mas?

Gracias de antemano...

ecfisa 29-11-2012 20:02:46

Hola feliz-58.

No sé donde tenes guardado los datos de los usuarios, generalmente se hace en la bd o en en un archivo. Pero sólo a fin del ejemplo voy a situar nombres de usuario y contraseñas como elementos de dos arrays of const.
Código Delphi [-]
...
implementation

const
  MAXUSR = 3;
  UserNames     : array[1..MAXUSR] of string=('user1','user2','user3');
  UserPasswords : array[1..MAXUSR] of string=('1234','2345','3456');


function TieneAcceso(const Name: string; const Pwd: string): boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 1 to MAXUSR do
    if (Name = UserNames[i])and(Pwd = UserPasswords[i]) then
      Result:= True;
end;

// Llamada ejemplo
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if not TieneAcceso(Edit1.Text, Edit2.Text) then
    raise Exception.Create('No tiene Acceso');
  ShowMessage('Todo Ok, puede continuar...');
end;

Saludos.

nlsgarcia 29-11-2012 20:20:30

feliz-58,

Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin

   if (txtUsername.Text = 'usuario1') and (txtPassword.text = '1234') or
      (txtUsername.Text = 'usuario2') and (txtPassword.text = '5678') or
      (txtUsername.Text = 'usuario3') and (txtPassword.text = '9123') or
      (txtUsername.Text = 'usuario4') and (txtPassword.text = '4567')
   then
   begin
      // Tu Código a Procesar
   end
   else
      MessageDlg('Acceso Denegado: Username y/o Password Incorrectos', mtinformation, [mbok], 0);

end;
Nota: Lo ideal es que la información de seguridad este en una BD, para algo simple el código anterior es válido.

Espero sea útil :)

Nelson.

feliz-58 29-11-2012 20:44:19

Falta....
 
Como es la otra forma que dices, de guardar los datos en una base de datos? como lo hago?

Me gustaria aprender las dos formas... Si no son muchas molestias, Solo quiero aprender :)

Muchas Gracias... :D

ecfisa 29-11-2012 20:52:03

Cita:

Empezado por feliz-58 (Mensaje 450896)
Como es la otra forma que dices, de guardar los datos en una base de datos? como lo hago?

Me gustaria aprender las dos formas... Si no son muchas molestias, Solo quiero aprender :)

Muchas Gracias... :D

Hola.

No es ninguna molestia, sólo indicanos con que DBMS deseas trabajar y con que componentes conectarte y vemos la forma de hacerlo.

Saludos. :)

feliz-58 29-11-2012 20:52:56

Cita:

Empezado por nlsgarcia (Mensaje 450894)
feliz-58,

Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin

   if (txtUsername.Text = 'usuario1') and (txtPassword.text = '1234') or
      (txtUsername.Text = 'usuario2') and (txtPassword.text = '5678') or
      (txtUsername.Text = 'usuario3') and (txtPassword.text = '9123') or
      (txtUsername.Text = 'usuario4') and (txtPassword.text = '4567')
   then
   begin
      // Tu Código a Procesar
   end
   else
      MessageDlg('Acceso Denegado: Username y/o Password Incorrectos', mtinformation, [mbok], 0);

end;
Nota: Lo ideal es que la información de seguridad este en una BD, para algo simple el código anterior es válido.

Espero sea útil :)

Nelson.

Muchas Gracias buscaba esta forma, trataba de inventarmela pero no llegue con ella jaja, diganme como es lo de la bas de datos

Casimiro Notevi 29-11-2012 20:57:23

Cita:

Empezado por feliz-58 (Mensaje 450899)
Muchas Gracias buscaba esta forma, trataba de inventarmela pero no llegue con ella jaja, diganme como es lo de la bas de datos

Te acaban de contestar, justo el mensaje de arriba.

feliz-58 29-11-2012 22:33:29

Es...
 
Cita:

Empezado por ecfisa (Mensaje 450898)
Hola.

No es ninguna molestia, sólo indicanos con que DBMS deseas trabajar y con que componentes conectarte y vemos la forma de hacerlo.

Saludos. :)

La base de datos es Access y usare un combobox para el usuario, un edit para la contraseña y dos botones.

Gracias

ecfisa 29-11-2012 22:52:52

Cita:

Empezado por feliz-58 (Mensaje 450919)
La base de datos es Access y usare un combobox para el usuario, un edit para la contraseña y dos botones.

Gracias

Hola.

Un ejemplo sencillo:
Código Delphi [-]
...
function TForm1.UsuarioValido(const aName, aPassword: string): Boolean;
begin
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT USR_NAME, USR_PWD FROM USUARIOS');
    SQL.Add('WHERE USR_NAME =:PUSRNAME AND USR_PWD =:PUSERPWD');
    Parameters.ParamByName('PUSRNAME').Value := aName;
    Parameters.ParamByName('PUSERPWD').Value := aPassword;
    Open;
    Result:= not IsEmpty;
    Close;
  end;
end;
...

// Llamada:
procedure TForm1.btnIngresarClick(Sender: TObject);
begin
  if not UsuarioValido(ComboBox1.Text,Edit2.Text) then
  begin
     MessageBox(Handle, 'Los datos ingresados son incorrectos',
       'ERROR', MB_ICONERROR + MB_OK);
     Close
  end;
end;

Saludos.

ecfisa 29-11-2012 23:14:53

Hola.

Para no dejarte el ejemplo a medias, la carga del combo al inicio del form:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Text:= '';
  with ADOQuery1 do
  begin
    Open;
    while not Eof do
    begin
      ComboBox1.Items.Add(FieldByName('USR_NAME').Value);
      Next
    end;
    Close
  end
end;

Saludos. :)

feliz-58 30-11-2012 20:58:25

Pregunta
 
Cuales campos deben ir en la base de datos? como se llamaran?

Gracias.

//Saludos

ecfisa 30-11-2012 21:05:56

Hola.
Cita:

Empezado por feliz-58 (Mensaje 451003)
Cuales campos deben ir en la base de datos?

Minimamente deberán ser dos campos: El nombre del usuario y la contraseña. Ambos con la capacidad de almacenar cadenas de caracteres.

Cita:

Empezado por feliz-58 (Mensaje 451003)
como se llamaran?

Con los nombres que desees ponerle.

Saludos.


La franja horaria es GMT +2. Ahora son las 23:47:33.

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