Amigo creo que puedes reducir tu código un poco:
Código Delphi
[-]if edit1.Text = IntToStr(0) then
inc(contador)
else
contador := 0;
if contador = 30 then beep;
Prueba a ver que debe de hacer lo mismo.
Si pones IntToStr(0) te da igual haber puesto if edit1.Text ='0'
Un saludo