Ir para formulario principal apos nao ativar teclado

Delphi

17/01/2007

Pessoal, preciso de uma dica de como fazer para,
eu estar em um formulario, mas não estou usando
ou seja não teclei nem usei o mouse. O programa
volta automaticamente para o formulario principal,
apos algum tempo especificado por mim.

Agradecido
joao


Joao1313

Joao1313

Curtidas 0

Respostas

Vispo

Vispo

17/01/2007

Vc pode usar o componente Timer e definir o intervalo de repetição de acordo com o tempo que vc quer, e programá-lo para exibir o formulário principal.


GOSTEI 0
Joao1313

Joao1313

17/01/2007

Bispo obrigado, deste jeito ja esta funcionando. As vezes
agente esta trabalhando no formulario ele se fecha,
porque ja deu o tempo pre-definido. O que eu preciso
é apos um certo tempo que ninguem estiver
trabalhando nele o mesmo se feche.

Agradecido
joao


GOSTEI 0
Joaoshi

Joaoshi

17/01/2007

Colega, acredito que para resolver deva utilizar o componente ApplicationEvents.

- Colocar o componente ApplicationEvents (da additional)
- No evento [b:2248e6d531]onIdle[/b:2248e6d531] você inicia o timer para fechar o form.

Espero ter ajudado.


GOSTEI 0
Joao1313

Joao1313

17/01/2007

JoaoSHI, fiz assim mas não atendeu.

procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
begin
Timer1.Enabled:= true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Show;
end;

end.

Não importa se estou teclando ou não o form1 vai
para show.

Agradecido
joao


GOSTEI 0
Joaoshi

Joaoshi

17/01/2007

Colega

procedure TForm1.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
begin
// a aplicação ficou ociosa inicia o timer
Timer1.Enabled:= true;
end;

Você deve chamar FORM1 a partir do click de um button (por exemplo)
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Show;
end;

// se teve algum movimento parar o timer1.
No evento OnMessage do ApplicationEvents:
if (Msg.message = WM_KEYDOWN) or
(Msg.message = WM_LBUTTONDOWN) or (Msg.message = WM_RBUTTONDOWN) or
(Msg.message = WM_SYSKEYDOWN) then
Timer1.Enabled := False;



procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Close;
end;

Espero ter ajudado.


GOSTEI 0
Joao1313

Joao1313

17/01/2007

JoaoShi, deu certo.

Abraços e obrigado a todos
joao


GOSTEI 0
POSTAR