|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
is not valid integer value
Здравствуйте.
Есть Stringgrid из 9 столбцов(Группа, Фамилия, Математика, Физика, ОАиП, ООП, БД, уч в общ жизни, Стипендия) Делаю расчет стипендии в последнем столбце. Запускаю цикл на проверку значений с 3 столбца и второй стоки(там числа), все компилируется, но когда наживаю Рассчитать стипендию, то выдает ошибку is not valid integer value, как я понимаю он не находит числовых значений в StringGrid-е, но там у меня числа, и пустых строк нет. У кого какие идеи? В чем проблема? Код:
procedure TForm1.BitBtn4Click(Sender: TObject); var i, j, k5, k4, k3: integer; s: double; begin s:=StrToFloat(Edit1.Text); for i:=3 to stringgrid1.ColCount do begin for j:= 2 to stringgrid1.RowCount do begin k5:=0; k4:=0; k3:=0; if strtoint(stringgrid1.Cells[i,j]) = 5 then k5:=k5+1 else if strtoint(stringgrid1.Cells[i,j]) = 4 then k4:=k4+1 else if strtoint(stringgrid1.Cells[i,j]) = 3 then k3:=k3+1; if (k5=5)and(k4=0)and(k3=0)and(strtoint(stringgrid1.Cells[8,i])=1) then begin stringgrid1.Cells[9,i]:=FloatToStr(s+s/2); end else if (k5=5)and(k4=0)and(k3=0)and(strtoint(stringgrid1.Cells[8,i])=0) then begin stringgrid1.Cells[9,i]:=FloatToStr(s+s/4); end else if ((k5<5)or(k5>0))and((k4<5)or(k4>0))and(k3=0) then begin stringgrid1.Cells[9,i]:=FloatToStr(s); end else if ((k5<5)or(k5>0))and((k4<5)or(k4>0))and(k3=1)and(strtoint(stringgrid1.Cells[8,i])=1) then begin stringgrid1.Cells[9,i]:=FloatToStr(s); end else stringgrid1.Cells[9,i]:='Нет'; end; end; end; |