Tela de login no Delphi XE8
23/03/2017
0
eu estou montando um sistema de vendas, ai eu criei um form de splash certinho, e a de login tbm, ai eu ponho o login e a senha vai certinho, porem quando clico no botão do (x) pra fechar o form de login, ela entra no form principal como se eu estivesse logado, por favor alguem pode me ajudar.
desde já
agradeço muito.
e detalhe comecei um pouquinho de tempo somente estudando com o DEV Media e videos, muito obrigado à todos.
Yuri Menechelli
Posts
23/03/2017
Raimundo Pereira
Você pode criar uma variavel global "Logado:string"
Quando você realizar login preenche esta variável com Logado:='S';
Então no seu form principal você coloca um timer , que deverá verifica se a variável é diferente de S.
IF Logado<>'S' then
begin
Timer.enabled:=false;
login.showmodal;
end;
23/03/2017
Ermesom Lourenco
Eu resolvi este problema de forma simples, criando uma função na tela de login que retorna Booleano se foi realizado o login ou não. Dentro desta função eu tenho a chamada da própria tela de login e todo o tratamento para ver se o usuário cancelou. Caso retorne False no login o FormPrincipal chama a função Application.Terminate; que fecha a aplicação e assim o usuário não terá acesso.
Existem N outras formas de se resolver o caso, mas creio que esta seja a mais simples.
Também poderia fazer a função Login(); retornar um objeto contendo o usuário logado, que no caso se estiver Null (ou Nil no delphi) o sistema se auto fecharia.
23/03/2017
Yuri Menechelli
procedure TfrmPrinipal.FormCreate(Sender: TObject);
begin
frmSplash := TfrmSplash.Create(nil);
try
frmSplash.ShowModal;
finally
FreeAndNil(frmSplash);
end;
{frmLogin := TfrmLogin.Create(nil);
try
frmLogin.ShowModal;
if frmLogin.ModalResult = mrNo then
Application.Terminate;
finally
FreeAndNil(frmLogin);
end;}
end;
Clique aqui para fazer login e interagir na Comunidade :)