Uso de senha no meu projeto

09/12/2003

1

caro colegas

Tenho um projeto e quero colocar um formulário de senha, o que acontece e o seguinte criei uma tabela (t_cadusuario) com cod, usuário e senha. E gostaria de localizar os usuários para acesso ao sistema na tabela. Fiz dessa forma conforme dicas do fórum mais ainda não deu certo, o que estou fazendo de errado?

procedure TF_senha.FlatButton1Click(Sender: TObject);
begin
(if t_cadusuario.Locate(´usuario´,flatedit1.text,[])= true and

(if t_cadusuario.Locate(´senha´,flatedit2.text,[])= true then

begin
ShowMessage(´Longin aceito´);
//aqui acho que chama o form principal
end;

end.

Quando executo da os seguintes erros

[Error] u_senha.pas(37): Undeclared identifier: ´t_cadusuario´
[Error] u_senha.pas(37): ´THEN´ expected but identifier ´Locate´ found
[Error] u_senha.pas(39): ´THEN´ expected but identifier ´Locate´ found
[Error] u_senha.pas(44): ´)´ expected but ´;´ found
[Error] u_senha.pas(46): ´;´ expected but ´.´ found
[Error] u_senha.pas(48): Declaration expected but end of file found
[Error] u_senha.pas(21): Unsatisfied forward or external declaration: ´TF_senha.FormCreate´
[Fatal Error] Locadora.dpr(24): Could not compile used unit ´u_senha.pas


Responder

Posts

09/12/2003

Nigro

Vamos lá...
Não precisar dar locate nos dois campos, pois o locate ´localiza´ o registro e posiciona o poenteiro nele.
Dê o locate no campo usuário e compare a senha digitada com o campo senha, só isso, com apenas um locate


Responder

09/12/2003

Nilton

Caro colega,tenho a sua solução,escreva exatamente o código abaixo:

Var
A:Integer;
begin
A := 1;
if not dataModule.t_cadusuario.Locate (´Nome;senha´,VarArrayOf ([EditNome.text,EditSenha.text]),[]) then
begin
A := 0; beep; showMessage (´Nome ou Senha incorretos´);end;
if A <> 0 then
begin
showMessage (´Usuário aceito´);
frmPrincipal.show;
end;
end;
end;

OBS: Onde está escrito DataModule,escreva o nome do seu DataModule,na form de login insira duas edits,EditNome.text-EditSenha.text, pode fazer que não tem erro.
Boa sorte!


Responder

14/12/2003

Wagner

Ok, caros colegas me desculpe em abusar na insistencia. mais ainda nao consegui, eu fiz dessa forma mais ainda deu uns erros que nao sei como resolver de acordo com a dica do nilton so com alteracoes na tabela e datamodule, veja como ficou, e me ajudem mais uma vez por favor

procedure TForm10.BtconfirmaClick(Sender: TObject);
Var
A:Integer;
begin
A := 1;
if not f_cadsenha.tbsenha.locate (´usuario;senha´,[u:40a56963b6][b:40a56963b6]VarArrayOf[/b:40a56963b6][/u:40a56963b6] ([EditNome.text,EditSenha.text]),[]) then
begin
A := 0; beep; showMessage (´Nome ou Senha incorretos´);
if A <> 0 then
begin
showMessage (´Usuário aceito´);
f_menu.show;
end;
end;
end;

erros

[Error] USenha.pas(74): Undeclared identifier: ´VarArrayOf´
[Error] USenha.pas(74): Undeclared identifier: ´EditNome´
[Fatal Error] progcessos1.dpr(29): Could not compile used unit ´USenha.pas´


Responder

15/12/2003

Maxymus

Caro amigo, para resolver faça o seguinte;

No form da senha, vc já deve ter colocado um edit, pois bem;

no botao [Ok] ou no exit do edit, como vc preferir, faça o seguinte;

TbSenha.Cancel;
TbSenha.SetKey;
if tbsenha.FindKey([Edit1.Text)] then // compara se existe na tabSenha
Begin
ShowMessage(´Senha incorreta´);
Edit1.SetFocus;
End
else
FMenu.ShowModal;


Espero ter ajudado!!


Responder