
09.02.2011, 17:02
|
Прохожий
|
|
Регистрация: 05.01.2011
Сообщения: 14
Репутация: 10
|
|
Помогите подправить цикл
Люди добрые у меня вот есть кусочек программы, в котором вылетает ошибка. Где я выхожу за пределы грида. Помогите подправить:
Код:
for r:= 1 to StringGrid1.RowCount-1 do
begin
if (stringgrid1.Cells[0,r]<>'')and(stringgrid1.Cells[1,r]<>'')and(stringgrid1.Cells[0,r+1]<>'')and((stringgrid1.Cells[1,r+1]<>'')) then
begin
BeginDate:= StrToDate(Stringgrid1.Cells[0, r]);
EndDate:= StrToDate(Stringgrid1.Cells[1, r]);
while((StrToDate(StringGrid1.Cells[0,r+1]))<(StrToDate(StringGrid1.Cells[1,r+1]))) and((StrToDate(StringGrid1.Cells[1,r+1])>=BeginDate)and(StrToDate(StringGrid1.Cells[1,r+1])<=EndDate))and((StrToDate(StringGrid1.Cells[0,r+1])>=BeginDate)and(StrToDate(StringGrid1.Cells[0,r+1])<=EndDate))do
begin
showmessage(StringGrid1.Cells[0,r+1]+ ' - ' + StringGrid1.Cells[1,r+1] + ' входит в период ' + ' c '+ DateToStr(BeginDate) + ' по ' + DateToStr(EndDate));
stringgrid1.Rows[r+1].Clear;
SgSort( StringGrid1, 0);
end;
if (StrToDate(StringGrid1.Cells[0,r+1])>=BeginDate)and(StrToDate(StringGrid1.Cells[0,r+1])<EndDate) then
begin
showmessage(StringGrid1.Cells[0,r+1] + ' входит в период ' + ' c '+ DateToStr(BeginDate) + ' по ' + DateToStr(EndDate));
Stringgrid1.Cells[0,r+1]:= Stringgrid1.Cells[1,r];
obrabotka;
end;
end;
Ошибка в цикле while - do. Пожалуйста помогите
Последний раз редактировалось vnutr, 09.02.2011 в 17:13.
|