Olá,

Hehehe, está correto estimado. Indo um pouco mais além, pode usar alguns
eventos do componente.

// Mostrando quando o usuário se logou pela última vez:
procedure TForm1.UserControlLoginSucess(Sender: TObject; IdUser: Integer;
Usuario, Nome, Senha, Email: String;
  Privilegiado: Boolean);
var
  LastLogin : TDateTime;
  StrData : String;
begin
//Pesquisar ultimo login do usuario
  qryPesquisa.Close;
  qryPesquisa.SQL.Text := 'Select Max(Data) as Data from ' +
UserControl.LogControl.TableLog +
                        ' where IdUser = ' + IntToStr(IdUser) +
                        ' and MSG like ' + QuotedStr('Entrada no sistema%');
  qryPesquisa.Open;
  StrData := qryPesquisa.FieldByName('data').asString;
  if StrData <> '' then begin
    LastLogin :=  EncodeDate( StrToInt(Copy(StrData,1,4)),
StrToInt(Copy(StrData,5,2)), StrToInt(Copy(StrData,7,2)) ) +
                  EncodeTime( StrToInt(Copy(StrData,9,2)),
StrToInt(Copy(StrData,11,2)), StrToInt(Copy(StrData,13,2)),0);
    MessageDlg('Seu último Login foi em '+ FormatDateTime('DD/MM/YYYY',
LastLogin)+' '+ FormatDateTime('hh:mm', LastLogin), mtInformation, [mbOK],
0);
  end else MessageDlg('Bem vindo!'+#13+#10+'Este é seu primeiro Login no
sistema.', mtInformation, [mbOK], 0);

  qryPesquisa.Close;

// Logar este login do usuario
  UserControl.Log(Format('Entrada no sistema usuário: "%s" nome:
"%s"',[Usuario, Nome]),0);
end;

// Simplesmente pegando os dados do usuário logado
procedure TForm1.UserControlLoginSucess(Sender: TObject; IdUser: Integer;
Usuario, Nome, Senha, Email: String;
  Privilegiado: Boolean);
begin
  globalIdUser   := IdUser;
  globalNameUser := Nome;

// Logar este login do usuario
  UserControl.Log(Format('Ultimo login do usuário: "%s" nome:
"%s"',[Usuario, Nome]),0);
end;


// Logando usuário que fica errando senha, pode controlar pela propriedade
MaxLoginAttemps
// no create do form cria iTentativas := 1 e no loginsucess volta
iTentativas pra 1;
procedure TForm1.UserControlLoginError(Sender: TObject; Usuario, Senha:
String);
var
  sTentativas : String;
begin
  sTentativas := Trim(IntToStr(iTentativas)) + '/' +
IntToStr(UserControl.Login.MaxLoginAttempts);
  UserControl.Log(Format('Erro de login do usuário: "%s" senha: "%s"
tentativa : "%s"',[Usuario, Senha, sTentativas]),0);
end;
 

Saudações.

Alexandre.


-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Jorge Ericsson
Enviada em: quinta-feira, 24 de janeiro de 2008 03:00
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Usuário do UserControl

OI Júnior,

Para retornar o nome do usuário que logou no use control eu uso por exemplo:

vUsuario := UserControl.CurrentUser.UserName; statusbar.Panels[0].Text := '
Usuário: ' + qUsuario;

ou buscando direto na tabela que armazena os dados do usuário da seguinte
forma:
vCodUsuario := UserControl.TableUsers.FieldUserID;

Se vc pressionar após o ponto (Exe: UserControl.TableUsers. ) o delphi te
retornar todos os campos que possui a tabela Users para que que vc atribua
da melhor forma possivel.

Espero não ter complicado muito, mais simplifiquei ao máximo...


Em 24/01/08, Junior <[EMAIL PROTECTED]> escreveu:
>
>   Como faço pra descobrir qual o usuário que logou no sistema, já que 
> o controle é feito pelo User Control ?
>
> Alguém aí que usa o UC exibe em algum lugar (form/statusbar/etc) o 
> nome do usuário ?
>
> Obrigado
>
> Junior
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



--
Jorge Ericsson S. Pinheiro
Analista/Projetista de Sistemas
Ericsson Sistemas e Soluções
http://www.jericsson.com.br
61 9227.4785 / 3965.2992 / 3039.1768
Brasília - DF

Responder a