Fórum Aguardar Evento acontecer #369021
13/03/2009
0
Eu tenho aqui um componente e ele tem seus eventos.
Só que preciso criar uma função que ao chamar ela, aguarda a execução do evento.
Um exemplo é o readln do idTCPClient
Se coloco
Str:= idTCPClient.Socket.Readln();
ShowMessage(Str);
Ele vai aguardar até que chegue os dados.
É isso que estou querendo fazer criar uma função
Str:= LerDados();
ShowMessage(Str);
Esse LerDados vai aguardar até que o evento aconteça e depois volte para o ciclo normal.
Como posso fazer isso?
Rudá
Curtir tópico
+ 0Posts
13/03/2009
Rudá
LerDados(10000) aguardar até no máximo 10 seg;
Gostei + 0
13/03/2009
Woinch
Mas entendi o que você quer fazer. Você pode utilizar o comando Application.ProcessMessages para ficar aguardando o tempo que for necessário, exemplo:
function LerDados(MSeg: Cardinal); var Inicio: Cardinal; begin Inicio := GetTickCount; ContinuarProcessando := True; repeat Application.ProcessMessages; until ((GetTickCount -Inicio) >= MSeg) or (ContinuarProcessando); end;
Onde a variável ContinuarProcessando deverá ser uma variável privada ou pública que será mudada para False quando o processo deverá ser parado e a variável MSeg indicará em quantos Milesegundos o processo irá parar se a variável ContinuarProcessando não sofrer alterações.
Nunca fiz nada desse tipo antes, inclusive esse comando foi adaptado na hora por mim (não testei). Mas espero que te ajude em algo.
Favor mande um feedback.
Gostei + 0
13/03/2009
Rudá
Funcionou como eu queria.
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)