Fórum problema com tela login #423686
15/09/2012
0
olá amigos..
tenho uma tela login o qual chamo de frmprincipal..uso delphi 7 e mysql
criei uma função para validar o campos usuario e senha..no caso a ideia seria o usuário do programa digitar
o seu login de acesso e senha e ao clicar no botão confirmar entrar no sistema..
o login e senha já estão cadastrados no banco de dados e ele tem 2 tentativas para logar no sistema..caso contrario
o sistema teria que fechar..
o nome da tabela com os campos usuario e senha e administrador..
segue o codigo no botão confirmar
só que ao clicar no botão confirmar aparece mensagem ..2 tentativas erradas a aplicação será encerrada! sendo que o login está ok e teria que entrar direto no sistema..
o sistema entra..só que dá esta mensagem antes..
grato quem puder ajudar
tenho uma tela login o qual chamo de frmprincipal..uso delphi 7 e mysql
criei uma função para validar o campos usuario e senha..no caso a ideia seria o usuário do programa digitar
o seu login de acesso e senha e ao clicar no botão confirmar entrar no sistema..
o login e senha já estão cadastrados no banco de dados e ele tem 2 tentativas para logar no sistema..caso contrario
o sistema teria que fechar..
o nome da tabela com os campos usuario e senha e administrador..
segue o codigo no botão confirmar
procedure Tfrmprincipal.btnconfirmarClick(Sender: TObject);
begin
if (edit1.Text = '') then
begin
Messagedlg('O campo "Usuário" deve ser preenchido!', mtError, [mbOk], 0);
if edit1.CanFocus then
edit1.SetFocus;
Exit;
end;
if (edit2.Text = '') then
begin
Messagedlg('O campo "Senha" deve ser preenchido!', mtError, [mbOk], 0);
if edit2.CanFocus then
edit2.SetFocus;
Exit;
end;
if logvalido (edit1.Text, edit2.Text) then
ModalResult:=mrOk
else
inc(contador);
if contador < 2 then
begin
messageDlg(Format('2 tentativas erradas a aplicação será encerrada!', [contador]), mtError, [mbOK], 0);
if edit2.CanFocus then
edit2.SetFocus;
end
else
begin
showmessage('Esta aplicação será fechada!');
ModalResult:=mrCancel;
end;
end;
function Tfrmprincipal.logvalido(const usuario, senha: string): Boolean;
begin
with DM.ADOconexao, DM.ClientDataSet do
begin
if not connected then
connected :=true;
DM.ClientDataSet.Close;
DM.ClientDataSet.commandtext := 'select count(1) from administrador ' + 'where upper(usuario) = '+ Quotedstr(AnsiupperCase(trim(usuario))) + 'and senha = '+ Quotedstr(trim(senha));
DM.ClientDataSet.Open;
result := (Fields[0].AsInteger > 0);
end;
end;
só que ao clicar no botão confirmar aparece mensagem ..2 tentativas erradas a aplicação será encerrada! sendo que o login está ok e teria que entrar direto no sistema..
o sistema entra..só que dá esta mensagem antes..
grato quem puder ajudar
Mauricio Nicoli
Curtir tópico
+ 0
Responder
Posts
15/09/2012
Singular Ti
brother eu refiz seu código do botão confirmar... Dê uma olhada e veja se ajuda!!!
Se eu entendi bem o seu problema, acredito que esse código irá resolver..
Abraços!!!
Se eu entendi bem o seu problema, acredito que esse código irá resolver..
procedure Tfrmprincipal.btnconfirmarClick(Sender: TObject);
begin
if (edit1.Text = '') then raise Exception.Create('O campo "Usuário" deve ser preenchido!');
if (edit2.Text = '') then raise Exception.Create('O campo "Senha" deve ser preenchido!');
if logvalido (edit1.Text, edit2.Text) then
ModalResult := mrOk
else begin
inc(contador)
if contador < 2 then ShowMessage('Atenção, 02 tentativas erradas e a aplicação será encerrada!'+#13+'Tentativas realizadas: '+ IntToStr(contador));
if contador = 2 then
begin
showmessage('Esta aplicação será fechada!');
Application.Terminate;
end;
end;
end;
Abraços!!!
Responder
Gostei + 0
15/09/2012
Mauricio Nicoli
Obrigado amigo..
Alterei um pouco sua sugestão mas ficou muito bom grato..
Alterei um pouco sua sugestão mas ficou muito bom grato..
procedure Tfrmprincipal.btnconfirmarClick(Sender: TObject);
begin
if (edit1.Text = '') then
begin
Messagedlg('O campo "Usuário" deve ser preenchido!', mtError, [mbOk], 0);
if edit1.CanFocus then
edit1.SetFocus;
Exit;
end;
if (edit2.Text = '') then
begin
Messagedlg('O campo "Senha" deve ser preenchido!', mtError, [mbOk], 0);
if edit1.CanFocus then
edit2.SetFocus;
Exit;
end;
if logvalido (edit1.Text, edit2.Text) then
ModalResult := mrOk
else
begin
inc(contador);
if contador < 3 then ShowMessage('Atenção, 03 tentativas erradas e a aplicação será encerrada!');
if contador = 3 then
begin
showmessage('Esta aplicação será fechada!');
Application.Terminate;
end;
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)