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