![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Преамбула. Есть СтрингГрид, в котором общее количество строк больше видимых (RowCount>1000 => видимых на компоненте = 100), при этом последняя видимая строка (100-я), видна на половину .
Фабула. Клик мышью на 100-й строке вызывает нервное дерганье СтрингГрида и выделение строки гораздо ниже 100-й. Вопрос. Это глюк VCL или что-то еще, и как можно излечить. OnClick не переопределен, т.е. обработчик стандартный. |
#2
|
||||
|
||||
![]() Если нет своей перерисовки, то можно попробовать грузить не все 1000 строк, а только видимые.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Перерисовки нет, только на MouseMove переопределнние StringGrig.Hint (показать каждой строке свой хинт).
И смысл в том, что все 1000 строк нужны здесь и сейчас. Последний раз редактировалось icsander, 08.05.2012 в 00:42. |
#4
|
||||
|
||||
![]() Может ListView поможет?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
||||
|
||||
![]() Вообще у меня лично наблюдается несколько иной эффект. Срабатывает автоскрол при нажатии на нижнюю строчку, не важно при этом видима она частично или полностью.
И кстати, чем вызван выбор именно StringGrid для столь большого объема данных? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() Цитата:
2.Ну про 1000 строк я загнул, так, для примера. А StringGrid удобен для отображения табличных данных. В чужой проге подсмотрел WinSniffer-ом похожий Grid (TJvDBGrid). Там отрисовываются только полностью видимые строки. Я пробовал переопределить OnDrawItem, но даже если строка не отрисована, клик на ней все равно вызывает OnClick. Сторонние компоненты использую с осторожностью - не хочется к своим косякам прибавлять чужие. |