Можно так
Код:
var
d: array[0..2] of integer = (2, 5, 8);
procedure TForm1.Button2Click(Sender: TObject);
var
i, b, k: integer;
begin
for b := 0 to 2 do
begin
k:= 0;
for i := StringGrid1.FixedCols+1 to StringGrid1.ColCount-1 do
k:= k + StrToInt(StringGrid1.Cells[i, StringGrid1.FixedRows + d[b]]);
with StringGrid2 do Cells[b + FixedCols, b + FixedRows]:= IntToStr(k);
end;
end;
вывод суммы в StringGrid2 идёт по диагонали (1:1, 2:2, 3:3) думаю в задании ошибка, но это легко исправить.