Mensagem no StatusBar

Delphi

15/12/2004

Olá amigos,

Gostaria de um auxílio, pois estou elaborando uma aplicação e na tela principal estou usando um Statusbar que contém a informação do nome do operador, mas está com um pequeno problema na hora aparece o nome do operador mas depois some, estou usando essa linha de cogigo, estou retirando o nome do operador de uma tabela de login e senha.
procedure Tfrm_tela.Timer2Timer(Sender: TObject);
begin

 StatusBar1.Panels.Items[0].Text := DM.tb_LoginUsuario.Text;
 
end;


Fabiano Ferreira
fb.repres@uol.com.br


Ffb

Ffb

Curtidas 0

Respostas

Massuda

Massuda

15/12/2004

Parece que você está atualizando a barra de status usando um timer... o valor de DM.tb_LoginUsuario.Text está sempre disponível?


GOSTEI 0
Ffb

Ffb

15/12/2004

Desculpa, não entendi sua pergunta.

Fabiano Ferreira


GOSTEI 0
Massuda

Massuda

15/12/2004

Parece que você está atualizando a barra de status usando um timer... o valor de DM.tb_LoginUsuario.Text está sempre disponível?
Quando o timer é executado, o valor de DM.tb_LoginUsuario.Text é válido?


GOSTEI 0
Paulo_amorim

Paulo_amorim

15/12/2004

Olá

Verifique se não está limpando seu conteúdo em algum momento posterior ao timer

Até+


GOSTEI 0
Andremuller

Andremuller

15/12/2004

Caso tu esteja utilizando um timer para colocar o nome do operador no statusbar a primeira coisa que te aconselho a fazer é executar isso em outro momento, como no construtor ou OnShow mesmo.
Execute no timer apenas se for necessário fazer essa verificação constantemente.


GOSTEI 0
Ffb

Ffb

15/12/2004

Olá amigos,
Nenhuma das observações acima resolveu o problema, quando eu executo o aplicativo eu insiro a senha o login e quando abre a tela inicial atá aparece o nome do usuario que inseriu a senha e login, mas logo depois desaparece.
Como eu posso fazer para que esse Item do Panel da Statusbar venhar ficar com o seu Enable := True;

Atenciosamente,

Fabiano Ferreira


GOSTEI 0
Rômulo Barros

Rômulo Barros

15/12/2004

Tire esse códigos do evento do seu timer.
Coloque o código abaixo no evento ONSHOW do formulário que possui a statusbar:
StatusBar1.Panels.Items[0].Text := DM.tb_LoginUsuario.Text;



GOSTEI 0
Tinorj

Tinorj

15/12/2004

O Probrema é o seguinte: 8)

Quando você está se logando ao sistema, a TTable tb_Login está aberta e então quando você pesquisa por DM.tb_LoginUsuario.Text você obter o conteúdo do campo Usuario de tb_Login, mas quando você passar para o form principal, após ter feito as verificações de usuario e senha, provevalmente você fecha tb_Login (DM.tb_Login.Close ou DM.tb_Login.Active := False) e então o conteúdo de DM.tb_LoginUsuario.Text é igual a ´´.

:idea: O Ideal seria você criar uma variável pública em seu form principal e quando você se ´logar´ no sistema, armazenar nesta variavel o nome do usuario atual e no seu TTimer fazer referência a esta variável e não mais a tabela tb_Login.

[s] :lol:


GOSTEI 0
Andremuller

Andremuller

15/12/2004

Tu continua usando o timer?
Caso não, envie maiores esclarecimentos, como evento que escreve o text e verifique se não outro evento sobrescrevendo o statusbar.
Talvez seja dicas óbvias mas é que esse não é o comportamento normal do statusbar


GOSTEI 0
Andremuller

Andremuller

15/12/2004

Apenas para reforçar:

O evento onTimer deve ser somente utilizado caso tu queira fazer uma verificação constante de determinada coisa.
Exemplo: tu quer escrever algo no statusbar e apos 5min limpar a informação.

Quando a informação deve ser exibida de forma fixa utilize outros eventos (como OnShow) ou escreva o código no construtor (eu pessoalmente acho isso mais bem programado)


GOSTEI 0
Massuda

Massuda

15/12/2004

Considerano seu [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=56139]outro post sobre este assunto[/url]: continue usando o evento OnTimer do timer para atualizar a data e hora na barra de status, mas, como os colegas sugeriram, use outro evento (como OnShow do form) para mostrar o nome do operador.


GOSTEI 0
Ffb

Ffb

15/12/2004

Obrigado amigos, conseguimos resolver o erro, era somente retira o close na tb_Login na tela de login.

Atenciosamente,

Fabiano Ferreira


GOSTEI 0
Hard.disk

Hard.disk

15/12/2004

Mas explica... pq isso tem q ser no evendo do timer??????
to curioso!!!


GOSTEI 0
POSTAR