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

(Resolvido) Form Login Fechando


fdefod

Pergunta

Olá pessoal.

Peguei um sistema feito em delphi para dar suporte e estou com o seguinte problema:

Toda vez que é aberto o Form Login (FormLogin.ShowModal;) e que o usuário digita a senha errada o form é fechado. O que pode estar acontecendo. Lembrando que tenho duas procedures:

TFormLogin.BtnConectarClick - Logar

TFormLogin.Button2Click - Sair

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

procedure TFormLogin.BtnConectarClick(Sender: TObject);

var

TemProposta, RelatFinanc: Boolean;

begin

Tabelas.QUsuarios.Open;

if Tabelas.QUsuarios.Locate('NomeUsuario', EdNome.Text, [loCaseInsensitive]) then

begin

sysCodUsuario := Tabelas.QUsuariosCodUsuario.Value;

sysNomeUsuario := Tabelas.QUsuariosNOMECOMPLETO.Value;

sysCodPerfilUsuario := Tabelas.QUsuariosCodcidade.Value;

if (EdSenha.Text <> Tabelas.QUsuariosSenha.Value) and (Tentativas <=3) then

begin

Alerta('%s, Senha incorreta! Digite novamente.', [sysNomeUsuario]);

EdSenha.SetFocus;

EdSenha.SelectAll;

Tentativas:= Tentativas + 1;

end

else

if Tentativas > 3 then //Se atingiu 3 tentativas...

begin

Alerta('%s, A sua senha não confere. Procure ajuda com o administrador do sistema.',[sysNomeUsuario]);

Halt; //... aborta o programa!

end

else //Senha correta.

begin

Screen.Cursor := crHourGlass;

Application.CreateForm(TFormPrincipal, FormPrincipal);

FormPrincipal.NomeUsuarioLogin:= sysNomeUsuario;

FormPrincipal.Caption :='Visual Sica - Ano base: ' + Tabelas.QConfiguracaoANOEXERCICIO.AsString;

FormPrincipal.StatusBar1.Panels[2].Text := 'Usuário: ' + sysNomeUsuario;

fechar:= true;

winresult := mrOk;

Close;

Screen.Cursor := crDefault;

end;

end else

begin //Usuário não cadastrado.

Alerta('Usuário %s não cadastrado!', [EdNome.Text]);

EdNome.SetFocus;

EdNome.SelectAll;

end;

Tabelas.QUsuarios.Close;

end;

Obs: Ele esta entrando no if certo mas mesmo assim está fechando o form.

Link para o comentário
Compartilhar em outros sites

  • 0

faça essa alteração

if Tentativas > 3 then //Se atingiu 3 tentativas...
      begin
         Alerta('%s, A sua senha não confere. Procure ajuda com o administrador do sistema.',[sysNomeUsuario]);
         Tabelas.QUsuarios.Close;
         Halt; //... aborta o programa!
      end
   else //Senha correta.
      begin
         Screen.Cursor := crHourGlass;
         Application.CreateForm(TFormPrincipal, FormPrincipal);
         FormPrincipal.NomeUsuarioLogin:= sysNomeUsuario;
         FormPrincipal.Caption :='Visual Sica - Ano base: ' + Tabelas.QConfiguracaoANOEXERCICIO.AsString;

         FormPrincipal.StatusBar1.Panels[2].Text := 'Usuário: ' + sysNomeUsuario;
         fechar:= true;
         winresult := mrOk;
         Close;
         Screen.Cursor := crDefault;
      end;
   end else
      begin //Usuário não cadastrado.
         Alerta('Usuário %s não cadastrado!', [EdNome.Text]);
         EdNome.SetFocus;
         EdNome.SelectAll;
      end;
   end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

como não tenho uma visão geral do código, tire esse comando

FormPrincipal.StatusBar1.Panels[2].Text := 'Usuário: ' + sysNomeUsuario;
         fechar:= true;
         winresult := mrOk;
         //Close;
         Screen.Cursor := crDefault;
se isso não resolver, veja onde esta o comando para fechar o formulario e deixe-o como comentário
FormLogin.Close;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Amigão ainda não conseguir resolver.

Vamos lá, no formLogin só tem procedures e não sei se ajuda mas não tem nenhum FormLogin.Close, e sim uma procedure procedure TFormLogin.FormClose(Sender: TObject; var Action: TCloseAction); que toda vez que sai da procedure do botão conectar ele entra nela. Ou seja depois de passar pela procedure Conectar ele está fechando o Form.

Só lembrando

Aqui cria o formLogin:

FormLogin := TFormLogin.Create(Application);

FormLogin.QryData.open;

Aqui chama FormLogin:

FormLogin.ShowModal;

Application.Run;

O formLogin é uma var dentro de uma unit. O formlogin está herda da classe TForm.

Editado por fdefod
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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...