Ir para conteúdo
Fórum Script Brasil
  • 0

formulario login


Livio Neiva

Pergunta

eu estou criando o formulario de login, e não estou conseguindo fazer com o usuario tenha tres chances de entrar no sistema, ou seja, depois que o usuario errar três vezes seu login ou senha

é que o sistema vai dar o.....

Application.Terminate;

encerra o programa

onde e como devo alterar

procedimentos,

//Verifica a senha do usuário

F_Dados.Q_ConsFunc.Active := False;

F_Dados.Q_ConsFunc.SQL.Clear;

F_Dados.Q_ConsFunc.SQL.Add('SELECT * FROM FUNCIONARIO WHERE LOGIN ='+#39+EditLogin.Text+#39);

F_Dados.Q_ConsFunc.SQL.Add('AND SENHA ='+#39+EditSenha.Text+#39);

F_Dados.Q_ConsFunc.Active := True;

//

if F_Dados.Q_ConsFunc.FieldByName('LOGIN').AsString <> '' then

F_Menu.ShowModal

Else begin

ShowMessage('Login ou Senha Incorretos');

Application.Terminate;

end;

close;

end;

obrigado a todos

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá

Crie uma variável global na tela de login e depois de verificar o usuário e a senha adicione este If:

Tentativas := Tentativas + 1;
  If Tentativas = 3 Then
  begin
    Application.MessageBox('Número de Tentativas excedidas!'+#13+#13
    + 'Consulte o administrador do sistema.','Aviso!', MB_ICONERROR + MB_OK);
    Application.Terminate;
  end;

Eu utilizo desta forma...

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Como fazer um contador para login...declarar a variavel Contador na form Login.

implementation
uses  UnitDM;
var
Contador:integer;
No DataModule você pode mostrar a form Principal e criar a form Login.
procedure TDM.DMCreate(Sender: TObject);
begin
DM.TableUsers.Open;
Principal.show;
frmlogin:=Tfrmlogin.create(self);
frmlogin.show;
end;
Aqui tem um procedimento que se falha o Nome 3 vezes fecha e se falha a Senha tb 3 vezes fecha.
procedure TFrmLogin.SpeedButton1Click(Sender: TObject);
var
ValorSenha:TstringField;
begin
if not DM.tableusers.findkey([ednome.text]) then
begin
pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador);
if contador=3 then
Principal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then
begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador);
if Contador=3 then
Principal.close;
edsenha.setfocus;
Exit;
end;
........\\ aqui você pode dar outras instrucões.
frmlogin.release;
end;

Espero que ajude você.

Abraço.

Editado por António44
Link para o comentário
Compartilhar em outros sites

  • 0

ola!!!

teria como me mandar uma resposta com base no procedimento que eu crie,

ou seja, apenas incluir novos codigos dentro desse procedimento abaixo;

o procedimento que estar relacionado a senha é o que estar em negrito!!!

procedure TF_Login.BtnOKClick(Sender: TObject);

begin

F_Dados.Z_ApliCom.Connected := False;

If RadioGroup1.ItemIndex = 0 then Begin

F_Dados.Z_ApliCom.Hostname := 'localhost';

F_Dados.Z_ApliCom.Database := 'aplicom';

F_Dados.Z_ApliCom.Protocol := 'mysql-4.0';

F_Dados.Z_ApliCom.User := 'root';

F_Dados.Z_ApliCom.Password := '';

F_Menu.Label3.Caption := 'MySQL';

end;

if RadioGroup1.ItemIndex = 1 then begin

F_Dados.Z_ApliCom.Hostname := 'localhost';

F_Dados.Z_ApliCom.Database := 'D:\sistema comercial\APLI-COM\dados\APLICOM.FDB';

F_Dados.Z_ApliCom.Protocol := 'firebird-1.5';

F_Dados.Z_ApliCom.User := 'SYSDBA';

F_Dados.Z_ApliCom.Password := 'masterkey';

F_Menu.Label3.Caption := 'Firebird';

end;

F_Dados.Z_ApliCom.Connected := True;

//Verifica a senha do usuário

F_Dados.Q_ConsFunc.Active := False;

F_Dados.Q_ConsFunc.SQL.Clear;

F_Dados.Q_ConsFunc.SQL.Add('SELECT * FROM FUNCIONARIO WHERE LOGIN ='+#39+EditLogin.Text+#39);

F_Dados.Q_ConsFunc.SQL.Add('AND SENHA ='+#39+EditSenha.Text+#39);

F_Dados.Q_ConsFunc.Active := True;

//Procedimento p/ nome du usuario apareça na barra de status

if F_Dados.Q_ConsFunc.FieldByName('LOGIN').AsString <> '' then begin

F_Menu.LinhaStatus.Panels[1].Text := 'Usuário: ' + F_Dados.Q_ConsFunc.FieldByName('NOME').AsString;;

F_Menu.Label4.Caption := F_Dados.Q_ConsFunc.FieldByName('CODIGO').AsString;

F_Menu.Label5.Caption := F_Dados.Q_ConsFunc.FieldByName('NOME').AsString;

F_Menu.ShowModal;

end

else begin

ShowMessage('Login ou Senha Incorretos');

Application.Terminate;

end;

close;

end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,1k
×
×
  • Criar Novo...