Да у тебя там полный бардак.
Тебе проще сделать свою функцию конвертирования заместо StrToInt:
Код:
function StrtoIntRange(AString : String; AMin, AMax : Integer) : Integer;
begin
Result := StrToInt(AString);
If Result > AMin Then Raise Exception.Create('Value less than min value.');
If Result > AMax then Raise Exception.Create('Value greater than max value.');
end;
А ловить эти ошибки именно в Try..Except