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

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

TDBGrid.DefaultDrawColumnCell [D6, XP, 2003]


Sandman29 ©   (2006-01-05 13:02:00) 

Ставлю TDBGrid.DefaultDrawing = True, обработчик OnDrawColumnCell c рисованием картинки вместо одного из полей. dgRowSelect in Options.
Симптомы проблемы:
при нажатии стрелки вниз курсор доходит до последней отображаемой строки и останавливается, бегунок скроллинга продолжает менять свою позицию;
при использовании мышки получается шахматная доска - старая строка не закрашивается неактивным цветом полностью, в новой строке тоже закрашиваются не все поля. Пробовал установить TDBGrid.DefaultDrawing = False и первой строкой обработчика вызывать DefaultDrawColumnCell(...), проблема остается.
На всех машинах, кроме нескольких, работает. На этих нескольких стоит либо WinXP SP2, либо Win2003. В множестве работающих машин тоже есть WinXP SP2 и Win2003.
Что это за глюк, и есть ли другой способ, кроме как рисовать весь грид самому? Надеюсь, проблема в этих машинах, выпускать новую версию очень не хочется.


Vemer   (2006-01-16 09:31:00) [1]

OnDrawColumnCell := False;
Call TDBGrid(Sender) default drawing procedure in end of your .DrawColumnCell procedure.


Sandman29   (2006-01-06 10:13:00) [2]

Изучил реализацию DrawColumnCell, убедился, что все делаю правильно.
Поставил серию опытов (пересылал измененные версии заказчику и просил сообщить о результатах). Выяснилось, что пробелма связана с тем, что в глючном гриде есть невидимый в данном случае Column, он прячется в run-time, после чего не работает даже обычная прорисовка без всяких OnDraw...Cell. Придется обходить проблему с помощью использования двух почти одинаковых гридов вместо одного. Бред, да и только :(


Наверх

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