Попробуй сортировать так:
Код:
function GetNum(i: integer): integer;
begin
Result := zapis1[i].date[3] * 1000 + zapis1[i].date[2] * 100 + zapis1[i].date[1];
end;
procedure Sort;
......
if GetNum(i) > GetNum(i + 1) then begin
....
обмен
....
end;
.....
end;