读取和操作 TStringGrid 中的值
Read and manipulate values in a TStringGrid
我有一个如下所示的 StringGrid:
+----------+----------+----------+----------+----------+
| FixedRow | FixedRow | FixedRow | FixedRow | FixedRow |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 100 | Data |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 158 | Data |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 1002 | Data |
+----------+----------+----------+----------+----------+
StringGrid 可以有任意数量的行,我想在 Timer 的滴答事件中找到第 4 列中每个单元格的值并将其值减 1。
如何以这种方式读取和操作 TStringGrid?
这很简单。
简单遍历数据(non-header)行,对于每一行,获取第四列的值,将其转换为整数,减少它,将其转换回字符串,并设置该字符串的单元格值。
由于你没有固定的列,所有的列都是数据列。它们的索引为 0、1、2、3、4,因此第四个索引为 3。
由于您有固定的 (header) 行,因此这些行的索引为 0、1、2,...,N − 1,数据行为 1, 2, ..., N − 1.
procedure TForm1.Timer1Timer(Sender: TObject);
var
y: Integer;
Val: Integer;
begin
for y := 1 to StringGrid1.RowCount - 1 do
begin
Val := StrToInt(StringGrid1.Cells[3, y]);
Dec(Val);
StringGrid1.Cells[3, y] := Val.ToString;
end;
end;
我有一个如下所示的 StringGrid:
+----------+----------+----------+----------+----------+
| FixedRow | FixedRow | FixedRow | FixedRow | FixedRow |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 100 | Data |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 158 | Data |
+----------+----------+----------+----------+----------+
| Data | Data | Data | 1002 | Data |
+----------+----------+----------+----------+----------+
StringGrid 可以有任意数量的行,我想在 Timer 的滴答事件中找到第 4 列中每个单元格的值并将其值减 1。
如何以这种方式读取和操作 TStringGrid?
这很简单。
简单遍历数据(non-header)行,对于每一行,获取第四列的值,将其转换为整数,减少它,将其转换回字符串,并设置该字符串的单元格值。
由于你没有固定的列,所有的列都是数据列。它们的索引为 0、1、2、3、4,因此第四个索引为 3。
由于您有固定的 (header) 行,因此这些行的索引为 0、1、2,...,N − 1,数据行为 1, 2, ..., N − 1.
procedure TForm1.Timer1Timer(Sender: TObject);
var
y: Integer;
Val: Integer;
begin
for y := 1 to StringGrid1.RowCount - 1 do
begin
Val := StrToInt(StringGrid1.Cells[3, y]);
Dec(Val);
StringGrid1.Cells[3, y] := Val.ToString;
end;
end;