| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > TStringGrid |
| Автор: MovAx 14.3.2003, 21:37 |
| Добрый день! Делаю свой VCL компонент на основе TStringGrid в делфях. Записи в этот список добавляются по разному, можно через Rows, Cols, Cells, главное выставить свойства ColCount и RowCount. Но вот что интересно, нет метода очистки этих записей, такого как TListView.Items.Clear. Если RowCount установить в значение 100, а затем в 10, то в памяти останутся висеть 90 записей. Вопрос, для тех кто знает, каким способом можно сделать полноценный Clear |
| Автор: AntonSaburov 14.3.2003, 23:06 |
| Можно удалять из объектов Rows или Cols - т.к. это TStrings то там метод Clear есть. Наслаждайся |
| Автор: MovAx 15.3.2003, 00:00 |
| Thanks, я так и делал. Но как удалить сами указатели на TStrings из Rows? Они то остаются |
| Автор: AntonSaburov 15.3.2003, 00:42 | ||
У-у-у-у. Я в коды полез - там не так все просто. Я с TStringGrid не работал много, посему с налета решил ответить. И зря. TStringGrid содержит две структуры FRows и FCols. Оба типа TSparseList. И вот если его начать копать, то там надо разбираться долго. Времени у меня нет, но буду крайне признателен, если ты добъешь сию тему и опубликуешь. Все будут рады и кричать "бис" |
| Автор: Song 15.3.2003, 03:11 |
| With StringGrid1 Do Begin For t:=0 to RowCount-1 Do Rows[t].Clear; RowCount:=1; End; |
| Автор: AntonSaburov 15.3.2003, 03:22 | ||
Это было понятно изначально - а что делать с самим Rows[t]. То, что очистился сам список строк еще не говорит, что сам Rows[t] куда-то делся. Т.е. надо Rows[t].Free скорее всего надо вызывать |
| Автор: MovAx 15.3.2003, 03:56 | ||
Я давно понял что копать долго, вот только самому времени на это нет, поэтому и спросил |
| Автор: Song 15.3.2003, 04:21 |
| >>Т.е. надо Rows[t].Free скорее всего надо вызывать Чего? :-)) |