Puede estar ocurriendo una llamada recursiva indirecta:
Suponé el código:
Código Delphi
[-]
Procedure a;
begin
b;
end;
procedure b;
begin
a;
end;
Irremediablemente ocurrirá un EStackOverflow cuando se llame a el procedimiento a o b.
Es comun entrar en un ciclo recursivo indirecto, por ejemplo, modificando el valor de un campo en su propio evento OnChange, sin una condición que rompa el ciclo recursivo o un control adecuado de la misma.
Te recomiendo tratar de seguir el código paso a paso, observando en todo momento si no estas en esta situación.
Hasta luego.