Ich tippe mal auf ein Mehrschleifenproblem wobei die 2.Schleife das Problem darstellt.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
Var i,k,Summe :Integer;
Durchschnitt:Extended;
begin
Summe := 0;
For i := 0 to SG1.RowCount-1 do
begin
k := 0;
For k := k - (StrToInt(Edit2.Text)) to (SG1.RowCount-1 - StrToInt(Edit2.Text)) do
begin
If k <= 0 do
Summe := Summe + StrToInt(SG1.Cells[1,k]);
If k = 0 do
Summe := Summe + StrToInt(SG1.Cells[1,k]);
If k >= 0 do
Summe := Summe + StrToInt(SG1.Cells[1,k]);
if k = StrToInt(Edit2.Text) then break;
end;
Durchschnitt := Summe / StrToInt(Edit2.Text);
SG1.Cells[3,k] := FloatToStr(Durchschnitt);
end;
end;
i : ist die Laufvariable für das Stringgrid
k : Edit2.Text Die Glättungsvariable(Durchschnitt) je höher desto geringer der Einfluß der einzelnen Meßgröße.
Die Konvertierung erfolgt doch durch InttoStr, FloattoStr usw.