Fórum ShowMessage com tempo se o usuário esquecer de clicar OK #241072

02/07/2004

0

Dia desses, vi, na pagina do Clube, um artigo sobre trabalhar com ShowMessage com tempo definido caso o usuario se esqueca de clicar no botao Ok.
Tentei recupera-lo agora, mas nao encontrei.
Alguem o possui e, se sim, pode enviar para mim?

Claudemir


Xlobao

Xlobao

Responder

Posts

02/07/2004

Rafaelunp

Ae,

Se dedscobrir manda pra mim também!
To precisando disso tb...
Vou dar uma pesquisada...


Responder

Gostei + 0

02/07/2004

Dataclass

Rafael,

Está aí uma maneira de avisar o usuario para clicar num botão ou qualquer outra coisa.

No caso usamos um Timer.

{Procedimento avisa a cada 5 segundos}
procedure TForm1.TimerAvisoTimer(Sender: TObject);
begin
  //incrementando o contador
  segundos := segundos +1;

  //caso já façam 5 segundos emite mensagem
  if segundos =5 then
  begin
    ShowMessage(´Clique OK!´);
    segundos :=0;
  end;
end;


//iniciando o contador e o timer
procedure TForm1.FormShow(Sender: TObject);
begin
  segundos := 0;
  TimerAviso.Enabled := True;
end;



Responder

Gostei + 0

03/07/2004

Rafaelunp

Rafael, Está aí uma maneira de avisar o usuario para clicar num botão ou qualquer outra coisa. No caso usamos um Timer.
{Procedimento avisa a cada 5 segundos}
procedure TForm1.TimerAvisoTimer(Sender: TObject);
begin
  //incrementando o contador
  segundos := segundos +1;

  //caso já façam 5 segundos emite mensagem
  if segundos =5 then
  begin
    ShowMessage(´Clique OK!´);
    segundos :=0;
  end;
end;
//iniciando o contador e o timer
procedure TForm1.FormShow(Sender: TObject);
begin
  segundos := 0;
  TimerAviso.Enabled := True;
end;


Acho que não era bem isso que eu queria....
Seguinte, imagine que apareceu uma mensagem para o usuario (um ShowMessage ou Aplication.MessageBox) ai o usuário foi tomar um café e o restante dos processos está dependendo daquele ´ok´. Então eu gostaria que após xsegundos o Showmessage fosse fechado para dar continuidade aos processos...

Obrigado!


Responder

Gostei + 0

03/07/2004

Afarias

Dialogos são todos MODAIS... pq vc apenas não cria um formulário e usa para passar as mesagens usando SHOW para q o processo não seja interrompido??



T+


Responder

Gostei + 0

03/07/2004

Plautz

E ai, gente?

Bom, adaptei algum código para fechar uma MessageBox depois de determinado tempo. Só não consegui fazer com que o o que está escrito na mensagem indicasse o tempo restante.

Segue o código:

procedure TForm1.Button1Click(Sender: TObject);
 Begin
  Timer1.Interval := 5000; // Tempo que a msg ficará na tela -> 5 Segs
  Timer1.Enabled := True;
  MessageBox(Handle, PChar(´Algum baguio aqui!´), Pchar(´Titulo´), 8224);
 end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 keybd_event(VK_RETURN,0,0,0);
 Timer1.Enabled := False;
end;


Espero que possa ajudá-lo.
Se alguém souber como fazer para que, além da mensagem desaparecer, conste na mensagem o tempo restante, por favor postem. (Achei na página do Torry alguns componentes que fazem isso, ou pelo menos dizem que fazem pois não testei. Sei que existe uma maneira de fazer isso apenas com código, fugindo de componetes.)

Abraços.


Responder

Gostei + 0

03/07/2004

Plautz

Acho que encontrei o que os colegas queriam. Vejam no endereço

[url]http://www.clubedelphi.com.br/aplicativos/tempomsg.html[/url]

Qualquer coisa entrem em contato. Abraços.


Responder

Gostei + 0

03/07/2004

Vieira_alex

Amigo entre em aplicativos da página clube delphi e procure por mensagens com timer.

Espero ter ajudado..... :D


Responder

Gostei + 0

04/07/2004

Xlobao

Ae, Se dedscobrir manda pra mim também! To precisando disso tb... Vou dar uma pesquisada...



Abaixo, pequena adaptacao de trecho do codigo enviado por um camarada forense.
Acrescente um TBitBtn e um TTimer e aponte os eventos OnClick.

procedure TFProv_Principal.BitBtn1Click(Sender: TObject);
begin
Timer1.Interval := 3000; // Tempo que a msg ficará na tela -> 3 Segs
Timer1.Enabled := True;
MessageBox(Handle, PChar(´Testando MessageBox com tempo pré-definido.´), Pchar(´Titulo´), 8224);
end;

procedure TFProv_Principal.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_RETURN,0,0,0);
Timer1.Enabled := False;
end;


Responder

Gostei + 0

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

Aceitar