Fórum Usuario Logado na barra de Status #346701

26/09/2007

0

Como eu coloco o Usuário Logado na Barra de Status?


Robinhocne

Robinhocne

Responder

Posts

26/09/2007

Claudio_f

Bom Dia! eu faco assim, ve se lhe ajuda!

//PEGA USUARIO DO WINDOWS function UserName: String; var I : DWord; sUser : array of char; begin I := 255; SetLength(sUser,I); GetUserName(PCHAR(sUser),I); Result := PCHAR(sUser); end;


//PEGA IP DA MAQUINA LOCAL function NetHostIP: string; var WSAData: TWSAData; HostEnt: PHostEnt; Name: string; begin WSAStartup(2, WSAData); SetLength(Name, 255); Gethostname(PChar(Name), 255); SetLength(Name, StrLen(PChar(Name))); HostEnt := gethostbyname(PChar(Name)); with HostEnt^ do Result := Format(´¬d.¬d.¬d.¬d´, [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]); WSACleanup; end;


.
.
.
.

StatusBar1.Panels.Items[1].Text := Frm_VALIDACAO.ED_DATA.Text; //Data StatusBar1.Panels.Items[3].Text := Frm_VALIDACAO.ED_FILIAL.Text; //Codigo da Filial StatusBar1.Panels.Items[5].Text := Frm_VALIDACAO.ED_RESPONSAVEL.Text + ´-´ + Frm_VALIDACAO.xUser; //Nome do Login + Usuario do Windows StatusBar1.Panels.Items[6].Text := Frm_VALIDACAO.xIP; //Numero ip da maquina



Responder

Gostei + 0

26/09/2007

Robinhocne

Gostaria de buscar o usuario que está logado do programa


Responder

Gostei + 0

26/09/2007

Claudio_f

Bom, quando o usuario loga no programa ele tem de digitar o nome de usuario certo?

Se for assim eh soh definir um campo na sua StatusBar e atribuir o valor do campo login para ele...

StatusBar1.Panels.Items[1].Text := ED_USUARIO.Text


Responder

Gostei + 0

26/09/2007

Robinhocne

Mas é assim, a barra de status é no formprincipal, e tem outra tela que é do login do sistema, assim que vc me passou não deu certo.


Responder

Gostei + 0

27/09/2007

Martins

Mas é assim, a barra de status é no formprincipal, e tem outra tela que é do login do sistema, assim que vc me passou não deu certo.


Então vc informa o Form de Login, tipo:

StatusBar1.Panels.Items[1].Text  := frmLogin.EdUser.Text;


é uma sugestão.


Responder

Gostei + 0

27/09/2007

Robinhocne

Fiz desse tipo mas depois que eu logo não aparece nada.

procedure Tfrmprincipal.Timer1Timer(Sender: TObject);
begin
   statusbar1.Panels[2].Text := ´´ + formatdatetime (´hh:nn:ss´,now);
   statusbar1.Panels[1].Text := ´´ + formatdatetime (´dddd", "dd" de "mmmm" de "yyyy´, now);
   StatusBar1.Panels[0].Text := FrmLogin.TxtUsu.Text;

end;



Responder

Gostei + 0

27/09/2007

Claudio_f

Pode ser q vc esteja eliminando a tela de login depois de passar para outra tela.

procedure Tfrmprincipal.Timer1Timer(Sender: TObject); begin statusbar1.Panels[2].Text := ´´ + formatdatetime (´hh:nn:ss´,now); statusbar1.Panels[1].Text := ´´ + formatdatetime (´dddd´, ´dd´ de ´mmmm´ de ´yyyy´, now); StatusBar1.Panels[0].Text := FrmLogin.TxtUsu.Text; end;


Defina uma variavel global por exemplo no DataModule tipo
[b:28042e80be]´xUser:string´[/b:28042e80be]
e no evento OnExit do Campo que vc digita o Usuario coloca:
[b:28042e80be]´DM.xUser := ED_USER.Text´ [/b:28042e80be]
e depois na
[b:28042e80be]´StatusBar1.Panels[0].Text := DM.xUser;´[/b:28042e80be]

Assim o usuario estara disponivel em qualquer tela que vc quizer.


Responder

Gostei + 0

27/09/2007

Martins

Pode ser q vc esteja eliminando a tela de login depois de passar para outra tela. [quote:c26f45ca56]procedure Tfrmprincipal.Timer1Timer(Sender: TObject); begin statusbar1.Panels[2].Text := ´´ + formatdatetime (´hh:nn:ss´,now); statusbar1.Panels[1].Text := ´´ + formatdatetime (´dddd´, ´dd´ de ´mmmm´ de ´yyyy´, now); StatusBar1.Panels[0].Text := FrmLogin.TxtUsu.Text; end;


Defina uma variavel global por exemplo no DataModule tipo
[b:c26f45ca56]´xUser:string´[/b:c26f45ca56]
e no evento OnExit do Campo que vc digita o Usuario coloca:
[b:c26f45ca56]´DM.xUser := ED_USER.Text´ [/b:c26f45ca56]
e depois na
[b:c26f45ca56]´StatusBar1.Panels[0].Text := DM.xUser;´[/b:c26f45ca56]

Assim o usuario estara disponivel em qualquer tela que vc quizer.[/quote:c26f45ca56]

Usando variável global funciona legal.


Responder

Gostei + 0

27/09/2007

Robinhocne

Fiz dessa maneira:

unit fdtmiza;

interface

uses
  SysUtils, Classes, IBDatabase, IBQuery, DB, IBCustomDataSet, IBTable,
  DBTables, RpBase, RpSystem, RpCon, RpConDS, RpDefine, RpRave;

type
  Tdtmiza = class(TDataModule)
    qryiza: TIBQuery;
    traiza: TIBTransaction;
    dbaiza: TIBDatabase;
  private

  public
    { Public declarations }
  end;


var
  UsuSta : string;

  dtmiza: Tdtmiza;


implementation

{$R *.dfm}


end.



procedure TFrmLogin.txtusuExit(Sender: TObject);
begin
   DtmIza.UsuSta := TxtUsu.Text;
end;


Mas dá esse erro:

Build [Error] FLogin.pas(157): Undeclared identifier: ´UsuSta´ [Fatal Error] sistemacfc.dpr(46): Could not compile used unit ´FLogin.pas´



Responder

Gostei + 0

27/09/2007

Claudio_f

Fiz dessa maneira: Código: unit fdtmiza; interface uses SysUtils, Classes, IBDatabase, IBQuery, DB, IBCustomDataSet, IBTable, DBTables, RpBase, RpSystem, RpCon, RpConDS, RpDefine, RpRave; type Tdtmiza = class(TDataModule) qryiza: TIBQuery; traiza: TIBTransaction; dbaiza: TIBDatabase; private public { Public declarations } end; var UsuSta : string; dtmiza: Tdtmiza; implementation {$R *.dfm} end.



Tenta colocar a variavel na secao public;
unit fdtmiza; 

interface 

uses 
  SysUtils, Classes, IBDatabase, IBQuery, DB, IBCustomDataSet, IBTable, 
  DBTables, RpBase, RpSystem, RpCon, RpConDS, RpDefine, RpRave; 

type 
  Tdtmiza = class(TDataModule) 
    qryiza: TIBQuery; 
    traiza: TIBTransaction; 
    dbaiza: TIBDatabase; 

  private 

  public 
    UsuSta : string; 
  end; 

var 
  dtmiza: Tdtmiza; 

implementation 

{$R *.dfm} 

end. 



procedure TFrmLogin.txtusuExit(Sender: TObject); 
begin 
   FdtmIza.UsuSta := TxtUsu.Text; 
end;



Responder

Gostei + 0

27/09/2007

Robinhocne

Coloquei mas continua dando esse erro:

Undeclared identifier: ´UsuSta´



Responder

Gostei + 0

01/10/2007

Robinhocne

alguém poderia me ajudar nessa questão?


Responder

Gostei + 0

09/06/2016

Bruno Santos

Olá, talvez eu possa te ajudar, me diga qual o seu objetivo?
se for pra colocar um usuário logado no status bar, eu fiz isso:
Criei o procedure formshow do formulário principal:
[img:descricao=StatusBar com Usuario Logado]image.prntscr.com/image/f9a17e91ca934848921757ff8a649a96.png[/img]


Tente colocar o seguinte código:

procedure Tf_principal.FormShow(Sender: TObject);
begin
  StatusBar1.Panels.Items[1].Text:= 'Usuário: ' + f_login.c_user.Text; //Aqui eu disse pro Delphi que quando
end;                                                                                                     // o Formulario for mostrado ele vai
                                                                                                            // definir o texto do panel 1 para
                                                                                                             // usuário : + o campo usuario do form login
Responder

Gostei + 0

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

Aceitar