Fórum Tela de login não desaparce #322458
29/05/2006
0
Estou com um problema chato. Fiz algumas pesquisas, mas infelizmente não encontrei a solução. Quando executo a aplicação, aparece a tela de login. Após a validação, é exibida a tela principal. Pois bem, a tela de login não finaliza em hipótese alguma (fica por trás da tela principal).
Abaixo segue o código utilizado, caso tenha algo errado, por favor, mostrem-me se possível.
No View Source
Application.Initialize;
//Application.CreateForm(TfrmLogin, frmLogin);
Application.CreateForm(TfrmPrincipal, frmPrincipal);
Application.CreateForm(TdmConexao, dmConexao);
Application.CreateForm(TdmUsuarios, dmUsuarios);
try
Application.CreateForm(TfrmLogin, frmLogin);
frmLogin.ShowModal;
if frmLogin.ModalResult <> mrOk then
begin
ShowMessage(´Login/senha incorretos.´);
Halt;
end;
finally
FreeAndNil(frmLogin);
end;
Application.Run;
No botão logar....
procedure TfrmLogin.btnLogarClick(Sender: TObject);
begin
if edtLogin.Text = ´´ then
begin
edtLogin.SetFocus;
Application.MessageBox(´O campo ´LOGIN´ deve ser preenchido.´,
´ Erro´, MB_OK + MB_ICONERROR);
exit;
end;
if edtSenha.Text = ´´ then
begin
edtSenha.SetFocus;
Application.MessageBox(´O campo ´SENHA´ deve ser preenchido.´,
´ Erro´, MB_OK + MB_ICONERROR);
exit;
end;
if validaUsuario(edtLogin.Text, edtSenha.Text) = true then
begin
ModalResult := mrOk;
frmPrincipal.ShowModal
end
else
ModalResult := mrCancel;
end;
Agradeço desde já pela velha atenção de sempre.
Um abraço,
Rogério
Roger1976
Curtir tópico
+ 0Posts
29/05/2006
Massuda
Gostei + 0
30/05/2006
Roger1976
Eu fiz o teste, porém após a validação do usuário, a tela do login e a principal desaparecem. Uma outra coisa, como o form principal será chamado? Gostaria que, se possível, me indicasse no meu código uma outra modificação que poderia fazer para solucionar de vez o problema.
Obrigado pela dica.
Gostei + 0
31/05/2006
Roger1976
if validaUsuario(edtLogin.Text, edtSenha.Text) = true then
begin
ModalResult := mrOk;
frmLogin.Hide; // Acrescentei esta linha
frmPrincipal.ShowModal
end
else
ModalResult := mrCancel;
end;
Será que essa é uma boa solução?
Grato.
Gostei + 0
31/05/2006
Massuda
procedure TfrmLogin.btnLogarClick(Sender: TObject); begin ... if validaUsuario(edtLogin.Text, edtSenha.Text) = true then ModalResult := mrOk; else ModalResult := mrCancel; end;
Agora, no seu DPR, pode fazer assim...
... frmLogin := TfrmLogin.Create(nil); try if frmLogin.ShowModal <> mrOk then begin ShowMessage(´Login/senha incorretos.´); Halt; end; finally FreeAndNil(frmLogin); end; ...
Gostei + 0
03/06/2006
Roger1976
Gostei + 0
06/06/2006
Martins
Como ficou seu código?
vc poderia postar seu código aqui por favor!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)