Noch etwas Anderes?
Was soll ergebnis im Except für einen Wert haben?
Sagt dir der Compiler denn nichts vonwegen "nicht initialisierte Variable"? Wenn doch, warum hörst du nicht auf ihn?
Was ist ergebnistext?
Und was heißt "bricht ab"?
Außerdem wird dir jeder zu Recht den A versohlen, wenn er beim Debuggen auf diesen Code stößt.
TryStrToInt
StrToIntDef