Indetificar usuario logado em um canto do form

Delphi

28/02/2004

Bom! olha eu aqui outra vez :lol:

Seguinte pessoal! eu tenho um form login no meu projeto que o cara se identifica com login e senha que ele vai pesquisar no banco de dados (tabelausuario) se login e senha correto ele entra. O que eu queria era que em algum lugar no form atraves de um caption ou no statusbar identificar o usuario que esta logado :lol: Tem como fazer isso? o codigo de acesso que eu isso e esse:

procedure Tformlogin.BitBtn1Click(Sender: TObject);
begin
if not tabelaUsuario.Locate(´senha;login´,vararrayof([editsenha.Text,editusuario.text]),[]) then
begin
Application.MessageBox(´Ops! Usuario e/ou senha não autorizados!´,´Atenção!´,mb_iconStop+mb_ok);
editsenha.clear;
editusuario.SetFocus;
editusuario.SelStart:=0;
exit;
end
else
begin
fechar:=1;
close;
end;
end;


Obrigado, Uh! lembrei que eu tenho outra duvida sobre senha mais vou abrir outro topico, pra não misturar


Wagner

Wagner

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

28/02/2004

Colega,

Basta utilizar algo como:

FormX.Caption := FormX.Caption + ´(´+tbUsuariosNOME.Value+´)´;


Lembrando que a RxLib ou JediVCL possuem um componente que faz isso automaticamente.


GOSTEI 0
Wagner

Wagner

28/02/2004

Desculpe-me colega

Em que evento eu informo esse codigo?

Onde posso encontrar esses componetes?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/02/2004

Colega,

Na www.torry.net (huge components). No evento OnBeforeLogin.


GOSTEI 0
Wagner

Wagner

28/02/2004

[quote=´Aroldo Zanela´]Colega,

Basta utilizar algo como:

FormX.Caption := FormX.Caption + ´(´+tbUsuariosNOME.Value+´)´;


Desculpe-me a insistência Caro Aroldo e aproveito para agradeçer sua atenção, mais, mais eu ainda não entendi bem onde vai aparecer no formulario nome do usuario que logou? eu tenho varios form e queria identificar em cada form o nome do usuario logado, isso é possivel?


GOSTEI 0
Mccs

Mccs

28/02/2004

COLEGA, cria uma unit por exemplo: uTipos. E, nela você cria uma variável chamada por exemplo: NomeUsuario: String;

Pronto, ao se logar no sistema no mesmo método você passa o nome do usuário para essa variável. Simples.

Agora, é necessário você declarar a uses uTipos na outras unit´s de seu interesse. O que seria mais correto é exibir essa informação na janela principal.

Espero ter ajudado.

Marcelo Rezende Cavalcanti.


GOSTEI 0
Dbergkamps

Dbergkamps

28/02/2004

colega, que tal esta sugestao?
Vc coloca uma status bar e no primeiro panels voce coloca:
StatusBar1.Panels[0].Text:=TabelaUsuarioNomedeusuario.Value;
onde nome de usuario eh um campo da tabela
Vc coloca este codigo no onshow do formulario que vc quer que apareca.


GOSTEI 0
Wagner

Wagner

28/02/2004

colega, que tal esta sugestao? Vc coloca uma status bar e no primeiro panels voce coloca: StatusBar1.Panels[0].Text:=TabelaUsuarioNomedeusuario.Value; onde nome de usuario eh um campo da tabela Vc coloca este codigo no onshow do formulario que vc quer que apareca.



Isso funciona com um Label1.caption

Tipo
label1.caption:=TabelaUsuarioNomedoUsuario.value;


GOSTEI 0
Wagner

Wagner

28/02/2004

Não funcinou ainda :lol:

Agradeço a todas as dicas estou tentado usar a do bergkamps

StatusBar1.Panels[0].Text:=[color=blue:616265c7d0]TabelaUsuarioNomedeusuario[/color:616265c7d0].Value; //mais da um erro nesse ponto como se o nome do usuario não foi declarado, mais eu verifiquei tudo. O que pode esta passando despercebido :cry: ?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/02/2004

Colega,

Mude a propriedade SimplePanel para true e faça algo como sugerido, com as seguintes modificações:

StatusBar1.SimpleText := TabelaUsuarioNomedeusuario.Value; 


Lembrando que o objeto TabelaUsuarioNomedeusuario deve ser substituído pelo objeto correspondente de sua tabela.


GOSTEI 0
Dbergkamps

Dbergkamps

28/02/2004

wagner,
ainda da erro?
qual a mensagem?
no meu funciona corretamente, mande o erro para ver no que podemos ajuda-lo


GOSTEI 0
Wagner

Wagner

28/02/2004

:P :P :P :P :P yes,yes :P :P :P :P

Funcinouuuuu!!!ehehehehe

Obrigado.

:lol: Ops! tem como botar o nome Usuario na frente, tipo: Usuario: Fulano


GOSTEI 0
Dbergkamps

Dbergkamps

28/02/2004

claro que tem cara,
em programacao vc pode tudo (meu professor disse que a gente so nao pode fazer um menino, mas o resto...., alias ate faz a gente pode desenhar :lol: :lol: :lol: :lol: :lol: )
Sim cara, voltando ao assunto coloque
StatusBar1.Panels[0].Text:=´Usuario: ´ + Dtmo.TabelaUsuarioNomeUsuario.Value;

Valeu cAra,
qualquer coisa ja sabe


GOSTEI 0
Wagner

Wagner

28/02/2004

:P :P :P :P Mais uma vez!!!yes, yes,yes :P :P :P :P

Obrigado pela atenção de todos, Estou resolvendo quase todas os meus topico do fim de semana


GOSTEI 0
Wagner

Wagner

28/02/2004

:lol: :lol: :lol: No Yes, No Yes :lol: :lol: :lol:

Cantei vitoria antes do tempo

Seguinte: seguinte se eu tenho mais de um usuario cadastro??? ele esta pegando o ultimo usuario do cadastro de usuario

Se tenho José, Maria e João. Nao importa se voce entre com o usuario José ou Maria vai aparecer o João :cry:

StatusBar1.SimpleText := ´ Usuario: ´ + form1.tabelausuariologin.Value

O que pode ser feito???


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/02/2004

Colega,

Veja o seguinte exemplo utilizando o rxLoginDialog da RxLib:

procedure TForm1.FormCreate(Sender: TObject);
begin
  DesabilitarMenus;
  if pldSammc.Login then
  begin
    Sleep(500);
    HabilitarMenus;
    sbSammc.Panels[1].Text := qUsuariosUSU_NOME.Value;
  end else
    pldSammc.TerminateApplication;
end;
procedure TForm1.pldSammcCheckUser(Sender: TObject; const UserName,
  Password: String; var AllowLogin: Boolean);
begin

  qUsuarios.Close;
  qUsuarios.ParamByName(´USU_ID´).AsString  := UserName;
  qUsuarios.ParamByName(´USU_SENHA´).AsString := Password;
  qUsuarios.Open;

  if (qUsuarios.RecordCount<=0) or (Password=´´) then
  begin
    MessageDlg(´Usuário ou Senha inválida. Tente novamente!´,mtError,[mbCancel],0);
    AllowLogin := false;
  end;

end;



Note que o SQL restringe para localizar apenas um único usuário, onde deve corresponder o user e a password.


GOSTEI 0
Dbergkamps

Dbergkamps

28/02/2004

coloque o seguinte um edit com a propriedade visible=false
Depois do log on coloque:
Edit1.text:=TableUsuarionomedoUsuario.Value;
TabelaUsuario.FindNearest[(Edit1.Text)]´
StatusBar1.Panels[0].Text:=´usuario:´ + tableUsuarionomedoUsuario.Value
obs.: crie um indexador de forma que a tabela seja organizada pelo nome.
valeu


GOSTEI 0
Wagner

Wagner

28/02/2004

coloque o seguinte um edit com a propriedade visible=false Depois do log on coloque: Edit1.text:=TableUsuarionomedoUsuario.Value; TabelaUsuario.FindNearest[(Edit1.Text)]´ StatusBar1.Panels[0].Text:=´usuario:´ + tableUsuarionomedoUsuario.Value obs.: crie um indexador de forma que a tabela seja organizada pelo nome. valeu



Desculpe-me não entendi essa primeira parte colocar um edit??? aonde???
Depois do log on??????


GOSTEI 0
Dbergkamps

Dbergkamps

28/02/2004

coloque um edit no form da autenticação com a prop. visible=false;
qdo eu falei em depois do log-on significa depois da linha de código que verifica se a senha esta correta


GOSTEI 0
POSTAR