Здравствуйте.
Есть 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;