Amigo, o que são
o dm.Bloqueado é o que ?

e o dm.bloquar_tempo é o que ?

e o Done é o que ?

Eu queria testar essas rotinas em um form simples pra ver como fica e dai
colocar no meu sistema, mas nãlo estou conseguindo por causa dessas dúvidas
acima.

Vc pode me dar uma mão ?

Coloquei no meu sistema um timer e estou criando as rotinas, o que eu tenho
que alterar ?
  -----Mensagem original-----
  De: Osmar de Souza Júnior [mailto:[EMAIL PROTECTED]
  Enviada em: sexta-feira, 11 de fevereiro de 2005 08:34
  Para: delphi-br@yahoogrupos.com.br
  Assunto: [delphi-br] Re: Aplicação Ociosa




  Aí...
  Consegui resolver o problema...

  É o seguinte, criei 2 rotinas:

  procedure AppIdle(...);
  procedure AppNotIdle(...);

  Ao criar o meu data module:

  //--------------------------------------------------------------------
  Application.OnIdle    := AppIdle;
  Application.OnMessage := AppNotIdle;
  //--------------------------------------------------------------------

  Rotina que trata a ociosidade da aplicação:

  //--------------------------------------------------------------------
  procedure Tdm.appIdle(Sender: TObject; var Done: Boolean);
  begin
       if (fmPrincipal <> nil) and (fmPrincipal.Showing) then
            if (not dm.bloqueado) then
            begin
                 // Ativa o timer de bloqueio

                 timerBlock.Enabled := dm.bloquear_tempo > 0;
                 Done               := true;
            end;
  end;
  //--------------------------------------------------------------------

  Rotina que trata as mensagens que rolam pela aplicação:

  //--------------------------------------------------------------------
  procedure Tdm.appNotIdle(var Msg: tagMSG; var Handled: Boolean);
  begin
       // Ao mexer o mouse, ou pressionar qualquer tecla na aplicação
       // ... desativa o timer de bloqueio

       if (Msg.message = WM_MOUSEMOVE) or (Msg.message = WM_KEYDOWN) then
            timerBlock.Enabled := false;
  //--------------------------------------------------------------------

  É muito simples. Quando a aplicação fica ociosa, ocorre o evento
  Application.OnIdle(), então o timer é ativado. Ao mexer o mouse ou
  pressionar qualquer tecla que seja, desativa o timer.

  Ao estourar o timer, ativa-se a rotina de bloqueio do sistema.
  Pode-se até aperfeiçoar a rotina, mas funcionou...

  []s.


  --- Em delphi-br@yahoogrupos.com.br, Osmar de Souza Júnior
  <[EMAIL PROTECTED]> escreveu
  >
  >
  > Eu quero bloquear a aplicação quando ela fica ociosa por determinado
  > tempo.
  > Mas percebi que o evento OnIdle do Application é executado
  > ininterruptamente. Daí não consegui setar o Timer corretamente.
  > Alguém tem algum exemplo disso que possa dar uma luz ???





  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por:
              PUBLICIDADE




----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.




[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a