Fórum Eu queria 3 tentativas de acesso ao sistema #217191
28/02/2004
0
Seguinte uso esse codigo para acessar o sistema a questão e que se eu erro a senha e pula logo fora e eu tenho que chamar o programa novamente, o que eu queria era 3 tentativas de acesso antes do formlogin desaparecer.
Eu gostaria se possivel de uma solução em cima desse codigo
procedure Tformlogin.BitBtn1Click(Sender: TObject);
begin
if not tabelaUsuario.Locate(´senha;login´,vararrayof([editsenha.Text,editusuario.text]),[]) then
begin
Application.MessageBox(´Ops! Usuario e/ou senha não autorizados!´,´Atenção!´,mb_iconStop+mb_ok);
editsenha.clear;
editusuario.SetFocus;
editusuario.SelStart:=0;
exit;
end
else
begin
fechar:=1;
close;
end;
Obrigado
end;
Wagner
Curtir tópico
+ 0Posts
28/02/2004
Edilcimar
Gostei + 0
28/02/2004
Wagner
Agora que eu já sei o que fazer :D
Vou ver agora como fazer :cry:
Já que me explicou o que fazer pode me ensinar a fazer
:lol:
Gostei + 0
28/02/2004
Edilcimar
no onshow coloque
for i := 1 to 3 do
begin
cloque aqui o código de checagem da senha
If senha = verdadeira then
begin
feche o form e asinale a senha como verdadeira e dê um break
end
else (se a senha for falsa)
begin
if i > 3 then
application.terminate
else
continue o loop para a incrementação de i
end
end
Gostei + 0
03/03/2004
Wagner
Gostei + 0
03/03/2004
Bestschmidt
1) Crie uma variável global pública do tipo boolean, de modo que esta pode ser acessada por outro formulário;
2) Crie outra variável, como edilcimar escreveu, do tipo word (esta tbém deve ser global, mas pode ser privada);
3) Na procedure OnCreate do form de login, inicie estas variáveis: a booleana com false e a word com 0;
4) Na procedure OnClick do botão de login, coloque o seguinte código:
if tabelaUsuario.Locate(´Login´, editLogin.Text, []) then
begin
if tabelaUsuarioSENHA.Value = editSenha.Text then
begin
ok:= True;
modalResul:= mrOk;
end
else
begin
if contatentativas > 2 then
begin
ok:= false;
modalResult:= mrCancel;
end
else
begin
ok:= false;
Application.MessageBox(´Senha Inválida !´, ´Atenção´, MB_OK or MB_APPLMODAL or MB_ICONWARNING);
editSenha.SetFocus;
Inc(contatentativas);
end;
end;
end
else
begin
if contatentativas > 2 then
begin
ok:= false;
modalResult:= mrCancel;
end
else
begin
ok:= false;
Application.MessageBox(´Usuário Inválido !´, ´Atenção´, MB_OK or MB_APPLMODAL or MB_ICONWARNING);
Inc(contatentativas);
editLogin.SetFocus;
end;
end;
end;
Note que a variável global ok só recebe true se o login e a senha estão corretos.
5) No source do projeto (menu Project/View Source), logo depois que o formulário de login é criado, faça a verificação
if frmLogin.ok then
Application.Run;
Pode parecer meio complicado, mas funciona.
Espero que te ajude.
Gostei + 0
08/03/2004
Santiago
1)declare a variável ´verificar´ como public do tipo integer:
2)No evento Onactive fo form escreva:
verifica := 1;
3)No clique do botão tenta assim:
if tabelaUsuario.Locate(´Login´, editLogin.Text, []) then
begin
if tabelaUsuarioSENHA.Value = editSenha.Text then
begin
(chama seu programa)
end
else
begin
verifica := verifica+1;
if verifica = 3 then
begin
application.terminate;
end;
end;
Eu acho que vai funcionar, e que no meu trabalho tivemos problemas e acabamos por formatar as máquinas e eu tô sem o Delphi, qualquer coisa se eu que tô começando puder ajudar posta aí ou me manda um e-mail bgsac@ig.com.br
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)