Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Быстрая очистка StringGrid [D5, Win95/98]


Bishop ©   (2002-12-08 23:56:00) 

Здравствуй и процветай всезнающий All. Подскажите:
Как быстро очистить StringGrid, чтоб не очищать каждую ячейку?


Zwerg   (2002-12-10 13:05:00) [1]

TStringGrid хранит данные в разреженной матрице (Sparced Matrix),
доступ к Cell[], Rows[], Cols[] нетривиален. Поэтому проще
пересоздать TStringGrid ;)


Separator   (2002-12-10 08:03:00) [2]

Не прокатит, так как реально данные не будут уничтожены. Попробуй сначала заполнить таблицу, потом уменьшить ее размер и тут же снова увеличить до исходного, все данные останутся на месте.


mmb   (2002-12-10 07:59:00) [3]

Если установить RowsCount := 1 и ColsCount := 1?


Anatoly Podgoretsky   (2002-12-09 11:30:00) [4]

Хранение данных в TSringGrid весьма сложно и преобразование из в row/col/text не является быстрой операцией, если же учистять полностью, то Free/Create будет во много раз быстрее


Alexander Vasjuk   (2002-12-09 11:22:00) [5]

Separator © (09.12.02 08:54)
Видимо храниться в Rows а Cols создаються из Rows


Дмитрий К.К.   (2002-12-09 09:20:00) [6]

Да замочить его тогда и заново родить! ;)


Separator   (2002-12-09 08:54:00) [7]

тот же тайминг:
Cells[i,j] := "" 17841 мс.
Cols[i].Text := "" 13481 мс
Rows[i].Text := "" 8766 мс - самый продуктивный

Странно раньше результат был другим.
Кстати а почему к Rows доступ быстрее чем к Cols


MBo   (2002-12-09 08:50:00) [8]

P.S.
Освобождение и пересоздание этого StringGrid - 300 мс ;)


MBo   (2002-12-09 08:43:00) [9]

тайминг c 500x500 заполненных ячеек
Cells[i,j]:="" 9000 мс.
Rows[i].Clear 7100 мс
Rows[i].Text:="" 4200 мс


Separator   (2002-12-09 08:22:00) [10]


> MBo © (09.12.02 08:06)

Этот способ работает еще медленне чем простой перебор всех ячеек


MBo   (2002-12-09 08:06:00) [11]

with stringgrid1 do
for i:=FixedRows to RowCount-1 do
Rows[i].Clear;


PKT   (2002-12-09 07:51:00) [12]

to: Tundra (09.12.02 07:34)
А сам не пробовал ? Не прокатит этот способ.


Tundra   (2002-12-09 07:34:00) [13]

Попробуй RowCount и ColCount установить в 1, а затем вернуть в прежнее состояние


Sha   (2002-12-09 00:32:00) [14]

Придется очищать, тут никуда не деться...


Наверх

Титульная страница Поиск, карта сайта Написать письмо