Ошибка variant or safe array index out of bounds
Добрый день! Помогите с возникшей ошибкой, уже всю голову сломал!
Имеются массивы:
PerOsnProcFrom,PerPeniFrom,PerOsnProcTo,PerPeniTo:array[1..150]of date;
CDInPeriod,CDInPeriodPeni:array[1..150]of integer;
Ранее другой процедурой заполняем значениями вышеописанные массивы, после чего текущей процедурой проверяем их содержание и при необходимости переписываем значения.
В коде, при выполнении условия else if DateEdit4.Date<DateEdit5.Date, при работе с массивом PerPeniFrom выходит ошибка: variant or safe array index out of bounds.
Иначе при выполнении условия if DateEdit4.Date>DateEdit5.Date, при аналогичных условиях, все работает отлично ни каких проблем нет.
В чем может быть дело? Заранее очень благодарен за помощь!
Вот процедура которая проверяет массивы и при необходимости перезаполняет их новыми значениями.
procedure PeriodChecking(cNum:byte);
Var
fromDate:date;
begin
if
DateEdit4.Date>DateEdit5.Date
then
begin
fromDate:=PerOsnProcFrom[1];
for i:=1 to cNum-1
do
begin
if fromDate>PerOsnProcTo[i]
then
begin
PerOsnProcFrom[i]:=0;
PerOsnProcTo[i]:=0;
PerOsnProcFrom[i+1]:=trunc(DateEdit4.Date)+1;
fromDate:=DateEdit4.Date+1;
CDInPeriod[i]:=0;
CDInPeriod[i+1]:=trunc(PerOsnProcTo[i+1])-trunc(DateEdit4.Date)+1;
end;
end;
end
else if DateEdit4.Date<DateEdit5.Date
then
begin
fromDate:=PerPeniFrom[1];
for i:=1 to cNum-1
do
begin
if fromDate>PerPeniTo[i]
then
begin
PerPeniFrom[i]:=0;
PerPeniTo[i]:=0;
PerPeniFrom[i+1]:=trunc(DateEdit5.Date)+1;
fromDate:=DateEdit5.Date+1;
CDInPeriodPeni[i]:=0;
CDInPeriodPeni[i+1]:=trunc(PerPeniTo[i+1])-trunc(DateEdit5.Date)+1;
end;
end;
end;
end;
Комментарии
cNum не должно быть больше 150, массивы желательно проинициализировать (хотя бы PerPeniFrom[1])
Спасибо за ответ!