Snake750
24-03-2010, 20:04
Доброго времени суток. Помогите пожалуйста разобраться. Имеется вот что:
Описываем класс Студ в котором содержатся имена студентов и оценки по дисциплинам :Программирование, Математика, Черчение, Русский и Суммарный бал по дисциплинам.
type
TStud = Record
Name:string[20];
Progr:real;
Mathem:real;
Cherchen:real;
Russian:real;
SummPoDisc:real;
end;
Создаю экземпляры класса
var a:array[1..5] of TStud;
Написал процедуру которая заполняет данные экземпляров класса TStud из StringGrid1.
Procedure ReadInfoFromUser(x:TStud; i,j:integer);
begin
x.Name:=(form1.stringgrid1.Cells [i,j]);
x.Progr:=strtofloat(form1.stringgrid1.Cells [i+1,i+1]);
x.Mathem:=strtofloat(form1.stringgrid1.Cells [i+2,j]);
x.Cherchen:=strtofloat(form1.stringgrid1.Cells[i+3,j]);
x.Russian:=strtofloat(form1.stringgrid1.Cells [i+4,j]);
x.SummPoDisc:=0;
x.SummPoDisc:= ( x.Progr+ x.Mathem + x.Cherchen+ x.Russian);
form1.Stringgrid1.Cells [5,j]:=floattostr( x.SummPoDisc);
end;
Вызываю процедуру:
For i:=1 to 5 do
begin
ReadInfoFromUser(a[i],0,i);
end;
И вот тут почему то не заполняются значения экземпляров класса, но значение SummPoDisc считается и заполняется в StringGrid.
Прилагается исходник для удобства видения.
Описываем класс Студ в котором содержатся имена студентов и оценки по дисциплинам :Программирование, Математика, Черчение, Русский и Суммарный бал по дисциплинам.
type
TStud = Record
Name:string[20];
Progr:real;
Mathem:real;
Cherchen:real;
Russian:real;
SummPoDisc:real;
end;
Создаю экземпляры класса
var a:array[1..5] of TStud;
Написал процедуру которая заполняет данные экземпляров класса TStud из StringGrid1.
Procedure ReadInfoFromUser(x:TStud; i,j:integer);
begin
x.Name:=(form1.stringgrid1.Cells [i,j]);
x.Progr:=strtofloat(form1.stringgrid1.Cells [i+1,i+1]);
x.Mathem:=strtofloat(form1.stringgrid1.Cells [i+2,j]);
x.Cherchen:=strtofloat(form1.stringgrid1.Cells[i+3,j]);
x.Russian:=strtofloat(form1.stringgrid1.Cells [i+4,j]);
x.SummPoDisc:=0;
x.SummPoDisc:= ( x.Progr+ x.Mathem + x.Cherchen+ x.Russian);
form1.Stringgrid1.Cells [5,j]:=floattostr( x.SummPoDisc);
end;
Вызываю процедуру:
For i:=1 to 5 do
begin
ReadInfoFromUser(a[i],0,i);
end;
И вот тут почему то не заполняются значения экземпляров класса, но значение SummPoDisc считается и заполняется в StringGrid.
Прилагается исходник для удобства видения.