Hab jetzt keine Lust, alles durchzugehen. Vor allem, weil nur die pas nicht unbedingt was bringt - da fehlt die dfm und die dpr.
Aber: Problem dürfte h1:= h -sqrt(2*g*h)* zeit * (dl)*(dl)/x; hier sein. Ist sichergestellt, dass x <> 0 ist, und das (2*g*h) > 0 ist?
Außerdem: if a = ende then Timer1.Enabled:=false; ist tödlich. Eine Real-Zahl mit "=" zu vergleichen geht auf Grund von Rundungsfehlern und Darstellungsungenauigkeiten immer in die Hose. Besser etwas wie if abs(a-ende) < 0.0001 then...
_________________
We are, we were and will not be.