Показать сообщение отдельно
  #1  
Старый 09.02.2011, 17:02
vnutr vnutr вне форума
Прохожий
 
Регистрация: 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. Пожалуйста помогите
Ответить с цитированием