GARANTIR DESCONTO

Fórum Logoff \ Login #347130

08/10/2007

0

Olá amigos,

No onShow do form principal tenho o seguinte código para fazer o login no sistema:

// Solicita login ao usuário
fmLogin := tfmLogin.Create(Self);
fmLogin.ShowModal;
fmLogin.Free;

Vocês sabem como fazer Logoff \ Login, ou seja, trocar de usuário sem sair totalmente do sistema ?

Obrigado.
Abraços.


Francisco.riva1

Francisco.riva1

Responder

Posts

08/10/2007

Mahdak

amigo, vale a pena voce conferir o componente user control. é free e faz tudo isso e mais ainda....
se nao me engano: www.usercontrol.net


Responder

Gostei + 0

08/10/2007

Francisco.riva1

Olá Mahdak, eu conheço esse componente sim, e ele realmente é muito bom ... acontece q em um projeto específico tenho algumas situações que o user control não cobre :(

Abraços


Responder

Gostei + 0

08/10/2007

Werlon Goulart

Não seria :
1 - Fechar todos os Form (ou solicitar seu fechamento);
2 - Abrir a Tela de Login como Modal (impedindo o acesso ao menu);
3 - Se o login for aceito Seta as permissões (se existirem...) e se não for aceito vc decide se fecha o sistema ou fica eternamente na tela de Login;

Já fiz algo do tipo, só q era configurado para fechar as janelas e abrir a janela de login qndo o sistema ficasse parado pelo tempo configurado, sem nenhum acesso de mouse ou teclado.

Não seria :
1 - Fechar todos os Form (ou solicitar seu fechamento);
2 - Abrir a Tela de Login como Modal (impedindo o acesso ao menu);
3 - Se o login for aceito Seta as permissões (se existirem...) e se não for aceito vc decide se fecha o sistema ou fica
eternamente na tela de Login;

Já fiz algo do tipo, só q era configurado para fechar as janelas e abrir a janela de login qndo o sistema ficasse parado pelo
tempo configurado, sem nenhum acesso de mouse ou teclado.

m grande Abraço.
Werlon Goulart


private { Private declarations }

//Recebe a Msg de Ociosidade do Windows e Liga o Timer.
Procedure AplicacaoOciosa(var Msg: TMsg; var Handled: Boolean);
//Liga o Timer q aguarda 3 minutos de Ociosidade para chamar a Tela de Login.
Procedure LigaTimer(Sender: TObject; var Done: Boolean);

procedure TFmMenu.FormCreate(Sender: TObject);
begin
Application.OnMessage:=AplicacaoOciosa;
Application.OnIdle:= LigaTimer;
end;

//Liga o Timer q aguarda o tempo Configurado, em um componente TTimer da paleta System do Delphi7, de Ociosidade para chamar a Tela de Login,
// Se a tela de Vendas NAO estiver ativa.
Procedure TfmMenu.LigaTimer(Sender: TObject; var Done: Boolean);
begin
if fmCVenda=Nil then //No meu caso se a tela de vendas estivesse berta não fazia Logout Automático.
edTimer.Enabled:=True;
end;

//Desliga o Timer se Existir Movimentacao no Sistema.
Procedure TfmMenu.AplicacaoOciosa(var Msg: TMsg; var Handled: Boolean);
begin
//Movimento de Clique do Mouse e Teclas.
Case Msg.Message of //Desliga o Timer.
WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_KEYDOWN: edTimer.Enabled:=False;
end;
end;

procedure TFmMenu.edTimerTimer(Sender: TObject);
begin
if fmLogin=Nil then begin // Nao Existe
//Fecha os Forms que Estiverem abertos (Se em Edicao Perde a Alteracao).
FechaJanelas;

fmLogin:=TfmLogin.Create(Application);
fmLogin.Caption=mLogin.Caption + ´ - Sistema Bloqueado por Inatividade´;
fmLogin.ShowModal;
fmLogin:=Nil;
end;

edTimer.Enabled:=False; //Desliga o Timer;
end;

//Fecha todas as janelas e abre o Login para Usuario entrar com Nome e Senha novamente.
Procedure FechaJanelas;
begin
//Fecha os Forms que Estiverem abertos (Se em Edicao Perde a Alteracao).
if fmSobre<>Nil then fmSobre.Close;
if fmBackup<>Nil then fmBackup.Close;
if fmGrupo<>Nil then fmGrupo.Close;
if fmFornecedor<>Nil then fmFornecedor.Close;
if fmUnidade<>Nil then fmUnidade.Close;
//...
//...
//...
if fmFabrica<>Nil then fmFabrica.Close;
end;


O exemplo é simples, mas pode ser aplicado a qquer tarefa q vc necessitar executar... Um Backup, Garbage Coletion (no caso do Interbase), screen saver proprietário ou qquer tarefa maluca q vc inventar pras horas ´vagas´ da sua aplicação...


Responder

Gostei + 0

10/10/2007

Adriano Santos

Dêem uma olhada no meu blog que tem uma dica bem simples do que o Francisco precisa, inclusive ele mesmo já me respondeu por email dizendo que funcinou.

Abs

[url=http://www.delphitodelphi.blogspot.com]DtD - Delphi to Delphi[/url]

Quem quiser pode me contatar pela lista de dicussão criada no YahooGrupos. tem os dados de ingresso no meu blog também.



Abs


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar