Ajuda com Hint Herdado
Criei um modelo de cadastro onde estou utilizando o componente ApplicationsEvents para controlar os Hints de alguns objetos, como por exemplo botões.
Esse modelo, utilizo com o repository com herança.
Quando tenho uma janela de cadastro aberta e passo o mouse por cima dos botões, é apresentado no statusbar a descrição do botão. Até aí, beleza.
O problema é quando tenho duas telas de cadastro abertas, ambas herdando as funcionalidades desse modelo, na janema que possui o foco (SHowModal) que passo o mouse no botão, a descrição é apresentada no statusbar das duas janelas, na que possui o foco e na que não possui o foco.
Como foço para o hint aparecer somente na que possui o foco?
Agradeço desde já qualquer ajuda...
Esse modelo, utilizo com o repository com herança.
Quando tenho uma janela de cadastro aberta e passo o mouse por cima dos botões, é apresentado no statusbar a descrição do botão. Até aí, beleza.
O problema é quando tenho duas telas de cadastro abertas, ambas herdando as funcionalidades desse modelo, na janema que possui o foco (SHowModal) que passo o mouse no botão, a descrição é apresentada no statusbar das duas janelas, na que possui o foco e na que não possui o foco.
Como foço para o hint aparecer somente na que possui o foco?
Agradeço desde já qualquer ajuda...
Vagner Almeida
Curtidas 0
Respostas
Joel Rodrigues
30/12/2012
Posta o código que você está utilizando no evento do TApplicationEvents, assim fica mais fácil de avaliar e dizer algo.
GOSTEI 0
Vagner Almeida
30/12/2012
Nada de mais:
procedure Tfrm_cadmodelo.ApplicationEventsHint(Sender: TObject);
begin
StatusBar.Panels[0].Text := Application.Hint;
end;
procedure Tfrm_cadmodelo.ApplicationEventsHint(Sender: TObject);
begin
StatusBar.Panels[0].Text := Application.Hint;
end;
GOSTEI 0
Vagner Almeida
30/12/2012
Tem algum outro jeito de eu aplicar no modelo. Para passar para as demais telas que herdam do modelo?
GOSTEI 0
Vagner Almeida
30/12/2012
QUalquer coisa tenho TeamViewer, posso liberar o acesso para você ver
GOSTEI 0
Joel Rodrigues
30/12/2012
Opa, tenta o seguinte:
Isso vai verificar se o form que está ativo é o que está verificando o evento e só nesse caso vai mostrar a mensagem na StatusBar.
Vê no que dá.
procedure Tfrm_cadmodelo.ApplicationEventsHint(Sender: TObject);
begin
if Screen.ActiveForm = Self then
StatusBar.Panels[0].Text := Application.Hint;
end;
Isso vai verificar se o form que está ativo é o que está verificando o evento e só nesse caso vai mostrar a mensagem na StatusBar.
Vê no que dá.
GOSTEI 0
Vagner Almeida
30/12/2012
Valeu
GOSTEI 0
Joel Rodrigues
30/12/2012
E aí, no que deu?
GOSTEI 0
Vagner Almeida
30/12/2012
Funcionou, 100%. Apliquei no formulário modelo e o código foi repassado para todos os outros formulários que possui o modelo como herança.
Perfeito. Obrigado
Perfeito. Obrigado
GOSTEI 0