Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mauricionicoli

[Resolvido] problema com tela login

Recommended Posts

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

 

procedure Tfrmprincipal.btnconfirmarClick(Sender: TObject);
begin
    if (edit1.Text = '') then
       begin
            Messagedlg('O campo "Usuário" deve ser preenchido!', mtInformation, [mbOk], 0);
       if edit1.CanFocus then
            edit1.SetFocus;
            Exit;
       end;
           if (edit2.Text = '') then
              begin
                Messagedlg('O campo "Senha" deve ser preenchido!', mtInformation, [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('contador %d de 2', [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 ..messageDlg(Format('contador %d de 2', [contador]), mtError, [mbOK], 0); sendo que o login está ok e teria que entrar direto no sistema..

 

o sistema entra..só que dá esta mensagem antes..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá mauricionicoli, olhando seu código, acho que faltou begin/end no else, por isso mesmo que o login seja válido, ele vai passar pelo "if contador < 2 then".

 

if logvalido (edit1.Text, edit2.Text) then
ModalResult:=mrOk
else
begin //Adicionar begin
inc(contador);
if contador < 2 then
begin
	messageDlg(Format('contador %d de 2', [contador]), mtError, [mbOK], 0);
	if edit2.CanFocus then
	edit2.SetFocus;
end
else
begin
	showmessage('Esta aplicação será fechada!');
	ModalResult:=mrCancel;
end;
end;//Adicionar end

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.