GARANTIR DESCONTO

Fórum Detectar mudança de plano #202325

20/12/2003

0

Ando tendo a [b:6a2793e4e6]NECESSIDADE[/b:6a2793e4e6] de criar um evento para quando o programa é deixado de lado para ser feito outra coisa, tipo, por exemplo, o user alterna para outro programa, nesse momento algo deve acontecer paralisando o andamento da aplicação.

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

Richard Lima

Responder

Posts

21/12/2003

Deus

Bem, isso é simples.. basta você adicionar o seguinte procedimento à sua aplicação:

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.


Responder

Gostei + 0

21/12/2003

Deus

Corrigindo o código do [i:374c92437d]procedure TForm1.SaiudaAplicacao(var Msg: TWMActivate)[/i:374c92437d], que saiu [b:374c92437d]todo[/b:374c92437d] errado... :oops:

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.


Responder

Gostei + 0

23/12/2003

Richard Lima

Exatamente o que eu procurava, que bom que foi simples :)

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.


Responder

Gostei + 0

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

Aceitar