![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск=>StringGrid=>мерцание:(( [D6, Win95/98, WinME, NT4, Win2k]
Хмыня © (2002-07-16 02:27:00)Добрый вечер!
Есть форма поиска, результат поиска формирутся в StringGride . Одна ячейка содержит одну запись из БД. В ячейках могут быть и картинки, и многострочный текст, и ссылки. Содержимое ячейки рисуется в OnDrawCell.
Сам поиск реализуется в ните. Когда находится запись удовл. условию, то эта запись записывается в файл или в массив, а StringGrid.RowCount увеличивается на 1.
Так вот, когда просходит inc(StringGrid.RowCount), то таблица нехило моргает, а иногда и вся форма - это очень некрасиво. Может кто знает, как сделать увеличение RowCountа, чтобы канва StringGrida перерисовывалась, но по возможности меньше моргала. Понимаю, что вроде глупый вопрос, но вдруг кто сталкивался и решил такую проблему.
Song (2002-07-16 18:01:00) [1]Как она может мерцать, если она не перерисовывается.... :-(
Вы точно False поставили ?
Хмыня (2002-07-16 12:21:00) [2]
> Song ©
Тоже самое ... мерцает:(
Song (2002-07-16 12:12:00) [3]Тогда можете попробовать на момент изменения таблицы переклюыить TStringGrid.DefaultDrawing. Таблица визуально перерисовываться не будет.
Хмыня (2002-07-16 12:07:00) [4]
> Song ©
уже пробовал:
...
LockWindowUpdate(SrtingGrid.Handle);
inc(StringGrid.RowCount);
LockWindowUpdate(0);
...
тоже самое:((
> Opuhshii
первую часть понял (до слова "хотя"), а вторую не понял
Song (2002-07-16 10:43:00) [5]Запретите на нужный момент прорисовку - LockWindowUpdate()
Opuhshii (2002-07-16 07:28:00) [6]что значит "В ячейках могут быть и картинки"? на канве StringGrid"a рисуется картинка?,...
,
храни где-нибудь количество кондиционных записей, и лишь однажды увелич количество строк, на это время так же можно убирать отрисовку StringGrid"a,...
,хотя,..
используй StringGrid для отображения данных, не для хранения,... допустим результат поиска 200000 записей из них в данный момент 25 записей могут быть видны пользователю, и именно они отображаются и находятся в Cells,.. OnTopLeftChanged изменяешь данные,