Fórum Detectar mudança de plano #202325
20/12/2003
0
O problema não é deixar o form em [i:6a2793e4e6]fsStayOnTop[/i:6a2793e4e6], e sim saber quando a aplicação deixa de estar em primeiro plano...
Desde já agradaço uma possível ajuda..
Um abraço,
Richard
Richard Lima
Curtir tópico
+ 0Posts
21/12/2003
Deus
procedure SaiudaAplicacao(var Msg: TWMActivate); message WM_ACTIVATE;
Que vai ser ativado caso a aplicação receba uma mensagem do tipo [i:ae2774bdc0]WM_ACTIVATE[/i:ae2774bdc0]. Agora, é só verificar se a aplicação foi ativada ou não:
procedure TForm1.SaiudaAplicacao(var Msg: TWMActivate); begin WA_INACTIVE: begin // Faz o que tem pra fazer quando sair; end; WA_ACTIVE: begin // Faz o que tem pra fazer quando sair; end; end; end;
Atenção: [b:ae2774bdc0]NÃO[/b:ae2774bdc0] coloque nada que tire o foco da janela no código (tipo um [i:ae2774bdc0]ShowMessage[/i:ae2774bdc0], [i:ae2774bdc0]MessageDlg[/i:ae2774bdc0] ou [i:ae2774bdc0]MessageBox[/i:ae2774bdc0]) pois se não você vai gerar uma exceção que vai impedi-lo de voltar à aplicação. Use isso apenas para registrar o evento num log, ou ligar / desligar um timer, qualquer coisa que [b:ae2774bdc0]NÃO[/b:ae2774bdc0] mexa com o foco da aplicação. Ok? :) Espero ter ajudado! :) Abraços, dEUS.
Gostei + 0
21/12/2003
Deus
procedure TForm1.SaiudaAplicacao(var Msg: TWMActivate); begin case (Msg.Active) of WA_INACTIVE: begin // Faz o que tem pra fazer quando sair; end; WA_ACTIVE: begin // Faz o que tem pra fazer quando voltar; end; end; end;
Agora sim. ;) Mil perdões pelo erro. :) Abraços, dEUS.
Gostei + 0
23/12/2003
Richard Lima
ora ora.. quem diria.. ´recebi uma ajuda de deus!´ hohohoho brincadeira
obrigado de verdade!
isso realmente é de grande utilidade pra mim...
um grande abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)