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

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

поиск=>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 изменяешь данные,


Наверх

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