PDA

Ver la Versión Completa : Crear Varios usuarios a partir de mi codigo


feliz-58
29-11-2012, 19:23:41
Este es mi codigo:


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.

...
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:

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
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
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
feliz-58,

Revisa este código:

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
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
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
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:

...
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:

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
Cuales campos deben ir en la base de datos? como se llamaran?

Gracias.

//Saludos

ecfisa
30-11-2012, 21:05:56
Hola.
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.

como se llamaran?
Con los nombres que desees ponerle.

Saludos.