я сечас попробую рассмотреть этот вариант
Код:
if (zapis1[i].date[3] * 1000 + zapis1[i].date[2] * 100 + zapis1[i].date[1]) > (zapis1[i + 1].date[3] * 1000 + zapis1[i + 1].date[2] * 100 + zapis1[i + 1].date[1]) then
ошибка может быть в том, что zapis1[i].date[3] * 1000 (например), это больше максимального значения integer. попробую взять longint...