Olá Eny, 2010/4/30 Eny Urias <enyur...@yahoo.com.br>: > Olá! > > Estou começando a trabalhar com threads... Mas estou com uma dúvida... Tenho > um loop de atualização de dados... Mas como é um processo demorado, quero > deixar disponível um botão para o usuário encerrar o programa. Como faço para > que, ao pressionar o botão, o programa aguarde um aviso da thread dizendo que > está liberada e aí eu possa encerrar a thread e o programa? Já procurei em > tudo quanto é lugar e achei umas funções da API: PostThreadMessage e > WaitforSingleObject... mas não consegui aplica-las. Alguem sabe como eu posso > fazer isso? >
Para pausar uma Thread, ao pressionar um botão, utilize o método Suspend e logo após faça o questionamento ao usuário se é para continuar ou não; para continuar utilize o método Resume. Se for o inverso, ou seja, a Thread que vai avisar o programa que acabou, utilize o evento da Thread chamado OnTerminate (você terá que setar este evento após criar a Thread, utilizando um método do formulário, por exemplo. Procure mais sobre isso no próprio help do Delphi que tem tudo. Marcos Douglas