读书人

关于StringGrid控件使用的有关问题

发布时间: 2012-02-09 18:22:27 作者: rapoo

关于StringGrid控件使用的问题?
我有一个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所在行的数值之和!


[解决办法]
比如,在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;

至于在“合计”按钮中写代码就简单多了,双重循环就行。

读书人网 >.NET

热点推荐