Ricardo Lima wrote:
> Como consigo implementar uma proteção em um bloco de código de forma a
> entrar no código um de cada vez?
> 
> Eu já dei uma olhada no TCriticalSection só que ele funciona somente se
> for proteção entre diferentes threads, no meu caso tenho uma aplicação
> Mdi que no form principal
> tem um evento que todos os forms MdiChild fazem chamadas a esse evento,
> porem deve ser executando uma unica chamada por vez.
> 
> Como consigo fazer essa proteção?

Se sua aplicação não é multi thread, então cada método jamais será 
executado em paralelo. Talvez o seu problema seja com a aplicação entrar 
em loop? Coloque um flag na sua classe, ex.:

begin
   if FExecutando then  // declarado na área private da classe
     Exit;
   FExecutando := True;
   try
     // bloco
   finally
     FExecutando := False;
   end;
end;

--
Joao Morais

Responder a