1

我正在尝试执行:

Form3.StringGrid1.Cells[0,Form3.StringGrid1.RowCount] := 'Hoofdstad'; 

执行后

Onderdelen := Form3.StringGrid1.RowCount;
Form3.StringGrid1.RowCount := Onderdelen + 1;

每次都会出错,它会说我正在尝试更改不存在的单元格的文本(尚)。我对这门语言还是很陌生,希望有人能帮助我。

4

1 回答 1

2

Cells属性使用从 0 开始的索引。第一行的索引为 0,最后一行的索引为RowCount-1。添加新行时,会RowCount增加,但最后一行的索引仍然是RowCount-1.

因此,当您尝试使用此功能时:

Form3.StringGrid1.Cells[0,Form3.StringGrid1.RowCount] := 'Hoofdstad';

你要出界了,因为Form3.StringGrid1.RowCount1 太高了。您需要改用它:

Onderdelen := Form3.StringGrid1.RowCount;
Form3.StringGrid1.RowCount := Onderdelen + 1;
Form3.StringGrid1.Cells[0, Form3.StringGrid1.RowCount - 1] := 'Hoofdstad';

或者,由于Onderdelen已经包含正确的索引值:

Onderdelen := Form3.StringGrid1.RowCount;
Form3.StringGrid1.RowCount := Onderdelen + 1;
Form3.StringGrid1.Cells[0, Onderdelen] := 'Hoofdstad';
于 2020-06-09T22:08:20.953 回答