Вниз
Скачать: CL | DM;

Не отрисовываются все ячейки в DBGrid   Найти похожие ветки 

← →
Unknown_user   (2011-02-10 19:09) [0]

Создал наследника TDBGrid, установил DefaultDrawing := False и перекрыл метод DrawColumnCell, где и производится вся отрисовка.

Если в опциях грида dgRowSelect и грид занимает по ширине всю клиентскую область парента, то DrawColumnCell вызывается только для первой ячейки активной строки. Остальные ячейки не обновляются.

При смене активной строки старая остается выделенной а в новой выделяется(перерисовывается) лишь первая ячейка.

Стоит только немного изменить ширину любой колонки и сразу все начинает обновляться.

Заметил это как-то связано с горизонтальным скроллбаром. Глюки с отрисовкой появляются после изменения ширины колонок при которой прячется горизонтальный скроллбар и сам грид при этом растянут на всю клиентскую область.

Есть такая критичная ширина грида при которой проявляется этот неприятный эффект.

Использую Delphi XE.


← →
Игорь Шевченко ©   (2011-02-10 21:01) [1]


> Заметил это как-то связано с горизонтальным скроллбаром


да, надо менять оконную процедуру DBGrid и при WM_HSCROLL обновлять всю область грида.

Вот тут еще на эту тему:

http://delphikingdom.com/asp/viewitem.asp?catalogid=806


← →
Unknown_user   (2011-02-11 00:02) [2]

Спасибо, буду рыть дальше. Значит это проблема стандартного DBGrid"а?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.051 c
15-1342729805
Юрий
2012-07-20 00:30
2013.03.22
С днем рождения ! 20 июля 2012 пятница


15-1353270605
Юрий
2012-11-19 00:30
2013.03.22
С днем рождения ! 19 ноября 2012 понедельник


2-1339658598
Lamer6666
2012-06-14 11:23
2013.03.22
DragAndDrop из браузера в приложение


15-1347085902
Опять я
2012-09-08 10:31
2013.03.22
H.264


15-1338358473
Bluejohn
2012-05-30 10:14
2013.03.22
Найти быстро место в исходнике




   Наверх