我有一个5行6列的StringGrid表格,怎样操作让最后一列的内容等于所对应行的数值之和!如
列1   列2    列3   列4   列5   列6
1      1     1      1     1     5
0      1     0      0     1     2
0      1     1      1     0     3
1      1     0      0     0     2
1      0     0      1     1     3
列6的所对应的值等于列1至列5所在行的数值之和!

解决方案 »

  1.   

    写个循环就可以吧或者在OnSetEditText事件中写代码
      

  2.   

    比如,在SetEditText事件中写代码,可以这样:(没有加容错处理,自己加。另外,表格的行列数是按楼主说的)procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
      ARow: Integer; const Value: String);
    var I : integer;
    begin
      with TStringGrid(Sender) do
      if ACol <> 5 then
        begin
        Cells[5, ARow] := '0';
        for I := 0 to 4 do
          if Cells[I, ARow] <> '' then
             Cells[5, ARow] := IntToStr(StrToInt(Cells[5, ARow]) + StrToInt(Cells[I, ARow]));
        end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      I, J : integer;
    begin
      for I := 0 to 5 do
        for J := 0 to 6 do
          StringGrid1.Cells[I,J] := '0';
      StringGrid1.Options := StringGrid1.Options + [goEditing,goAlwaysShowEditor];
    end;至于在“合计”按钮中写代码就简单多了,双重循环就行。