1)if contador = valor then
     Syncronize(ChamarForm);
2)While not Terminated do
begin
...
if Condicao then
   Break; //Encerra a execução da Thread
end;

3) Não entendi, que estado thread tu quer pegar?

Magnun Oliveira escreveu:
> 
> 
> 
> Ola a todos.
> 
> Tenho um programa q executa umas 15 threads p/ efetuar um processamento. 
> Coloquei o processamento no metodo Execute da thread. Funciona ok.
> 
> Em determinado momento, preciso chamar um form, de dentro dessa thread. 
> No execute:
> 
> if contador = valor then
> ChamarForm;
> 
> procedure TThread.ChamarForm;
> begin
> 
> form1.caption := IntToStr(ThreadID);
> // Chama o Formulario
> Form3 := TForm3.Create(nil);
> try
> Form3.ShowModal;
> finally
> Form3.Free;
> Form3 := nil;
> end;
> 
> end;
> 
> Ele mostra a id da thread no caption do form, porem nao chama o Form3 ...
> o que estou fazendo de errado?
> 
> outras duvidas ... como encerrar a thread de dentro do onExecute?
> como recuperar o estado de uma thread?
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 

Responder a