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