Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизНе отрисовываются все ячейки в 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 вся ветка
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.057 c