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

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

Запретить перерисовку DBGrida [D7, XP]


Страницы:   1 2

veb ©   (2006-04-04 10:58:00) 

Здравствуйте! Подскажите, пожалуйста, как запретить перерисовку DBGrida, когда по нему движется другой объект(панель).
Смысл такой:
- запретить перерисовку
- по таймеру выдвигается панель
- разрешить перерисовку.
Сейчас панель двигается очень медленно, когда в DBGride много элементов, особенно разукрашенных.


KSergey   (2006-04-06 11:29:00) [21]

> ЮЮ ©   (06.04.06 09:59) [8]
> > А на этом битмапе удасться ли отрисовать недостающие части
> > грида?
> Недостающие-то зачем? Насколько я понял, пока панель плывет,
>  грид не меняется.

Панель, уплывая, открывает грид. Т.е. становятся видимы новые колонки грида.


ЮЮ   (2006-04-06 09:59:00) [22]


> А на этом битмапе удасться ли отрисовать недостающие части
> грида?


Недостающие-то зачем? Насколько я понял, пока панель плывет, грид не меняется.


KSergey   (2006-04-06 09:48:00) [23]

Предлагаю:
а) двигать панель не на пиксель каждый раз, а на кол-во пикселей, пропорционально затраченному времени прошлого сдвига. Ну и зафиксировать общее желаемое время сдвига. Тогда уезжать будет за одно (примерно) время.

А вообще, если уж хочется вообще красиво - есть подозрение, что ЮЮ прав... Хоть и противно лично мне такое решение :). Кроме того, панелька при "уезжании" тоже вень не приглядно выглядит - а в варианте с bitmap можно и ее забитмапить.

> ЮЮ ©   (06.04.06 06:13) [6]
>  Сохранить изображение в битмап,
>  сам грид скрыть,
>  битмап выложить на обозрение.
> При движении панели будет просто отрисовываться этот битмап

А на этом битмапе удасться ли отрисовать недостающие части грида?.. чего-то сомнение меня разбирать начали, что это вообще получится...


ЮЮ   (2006-04-06 06:13:00) [24]

перед появлением панели:
 Сохранить изображение в битмап,
 сам грид скрыть,
 битмап выложить на обозрение.
При движении панели будет просто отрисовываться этот битмап
При сокрытии панели вернуть всё взад

З.Ы. Если раздражает только мигание, а не скорость, часто достаточно установить DobleBeffered в True (в run-time, ибо св-во не опубликовано) у компонента, на котором находится грид


veb   (2006-04-05 21:33:00) [25]

думаю, что проще посмотреть, чем на пальцах объяснять:
скачайте
http://crimeasoft.narod.ru/Download/VideoCat.exe
и на вкладке фильмы нажмите кнопку скрытия панели.
Так вот, эта панель зависит от количества элементов DBGrida. При большом количестве все мигает и дергается.


Бугага   (2006-04-05 03:26:00) [26]

Я не могу понять: что за панель?


Германн   (2006-04-05 02:29:00) [27]

Скорее всего, никак. Каждое окно должно перерисовываться, если что изменилось.


veb   (2006-04-04 23:46:00) [28]

Нет!
DisableControls отключает обновление данных в DataSet
А мне нужна перерисовка DBGrid.
Конечно, я пробовал DisableControls - не помагает, панель сверху по DBGrid движется все равно очень медленно.


Бугага   (2006-04-04 19:12:00) [29]

DisableControls?


Страницы:   1 2

Наверх

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