Компонент TStringGrid не очищает удаленные строки

При работе с таблицей строк TStringGrid иногда возникает потребность удалить содержимое таблицы. Обычно это делается простым изменением количества строк и столбцов. Однако только этого может быть недостаточно.

Рассмотрим небольшой пример:

this->StringGrid1->RowCount = 15;

for(int i = 0; i < 15; ++i)
  this->StringGrid1->Cells[0][i] = IntToStr(i);

this->StringGrid1->RowCount = 5;

В данном примере мы построчно выводим в таблицу числа от 0 до 14, а потом уменьшаем количество строк до 5. К чему это приведет? Таблица будет состоять из 5 строк. А что случится с другими строками?

Для ответа на этот вопрос вновь увеличим количество строк.

this->StringGrid1->RowCount = 15;

При этом мы опять увидим наши числа от 0 до 14. Получается, что при изменении размера таблицы, «лишние» строки просто скрываются но не удаляются. Это необходимо учитывать при разработке приложений.

Такое же поведение справедливо для Embarcadero RAD Studio 10.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *