Usuario Logado na barra de Status
Como eu coloco o Usuário Logado na Barra de Status?
Robinhocne
Curtidas 0
Respostas
Claudio_f
26/09/2007
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
GOSTEI 0
Robinhocne
26/09/2007
Gostaria de buscar o usuario que está logado do programa
GOSTEI 0
Claudio_f
26/09/2007
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
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
GOSTEI 0
Robinhocne
26/09/2007
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.
GOSTEI 0
Martins
26/09/2007
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.
GOSTEI 0
Robinhocne
26/09/2007
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;
GOSTEI 0
Claudio_f
26/09/2007
Pode ser q vc esteja eliminando a tela de login depois de passar para outra tela.
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.
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.
GOSTEI 0
Martins
26/09/2007
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.
GOSTEI 0
Robinhocne
26/09/2007
Fiz dessa maneira:
Mas dá esse erro:
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´
GOSTEI 0
Claudio_f
26/09/2007
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;
GOSTEI 0
Robinhocne
26/09/2007
Coloquei mas continua dando esse erro:
Undeclared identifier: ´UsuSta´
GOSTEI 0
Robinhocne
26/09/2007
alguém poderia me ajudar nessa questão?
GOSTEI 0
Bruno Santos
26/09/2007
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:
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 loginGOSTEI 0