Джурджулешты
Дата: 19.05.2011 11:21:59
Теоретический вопрос.
Есть Квантум-грид с ячейками, содержащими текст разного размера.
Если текст не влазит в обычный размер ячейки, то высота ячейки увеличивается, "подгоняется" под текст. Высота строки, содержащей ячейки, становится равной высоте самой большой ячейки в этой строке.
Мне интересно, как в таком случае Квантум-грид рассчитывает размер ползунка на своем скролл-баре?
Чтобы показать "правильный" размер ползунка, очевидно, нужно "знать" высоту каждой строки в столбце, соответственно вычисляется общая сумма всех высот, и зная общую сумму высот, можно пересчитать размер ползунка.
Причем Квантум-грид достаточно шустро ресайзится вместе с формой, на которой он "лежит", даже если строк различной высоты существует очень много, около 100 тыс. Вряд ли грид, меняя свои размеры в ран-тайме, действительно пересчитывает выстоты всех 100 тыс. строк, даже на средней машине это занимает много времени. Тем не менее, грид отображает, похоже, "правильный" ползунок при любом размере себя.
Подскажите трюк, "как они это делают"? Там как-то хитро реализован "расчет высоты" ползунка, но как? Ломаю голову третий день.