bzq-79-182-23-181.red.bez это я.
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Tad, а в чём разница? И там и там - ListView, в IC я получаю указатель PControl и ставлю на этот контрол флажки. Если флажков много - начинается тормоз
А вот если флажки стандартные, т.е. CheckBoxes у таблицы true и она сама делат свои флажки, то можно добавлять много строк, и ничего не тормозит. Почему так? В чём отличие флажков? |
|||
карма: 9 |
|
Разработчик
Ответов: 26135
Рейтинг: 2126
|
|||
3042 писал(а): Почему так? В чём отличие флажков?В том, что каждый контрол требует своего обработчика событий, который, явно отнимает системное время, иногда, до нескольких десятков мсек, что не скажешь об одном контроле с одним обработчиком отрисовки. Помотри, как релизован иетод отрисовки флажков в MTS_DrawManager-e, отрисовка происходит только области, где происходит изменение, а не всей таблицы, со всеми флажками. И еще, таблица не предоставляет место под другие флажки, кроме 0-го столбца. А вообще, для таких целей рекумендуется разобрать полную отрисовку в MTS_DrawManager-e и сделать свою, по аналогии, если уж очень надо, но вот как организовать матрицу флажков с произвольным доступом, я не знаю, изначально, это не предусматривается в самом классе контрола |
|||
карма: 22 |
|
Ответов: 1926
Рейтинг: 172
|
|||
nesco писал(а): отрисовка происходит только области, где происходит изменениеЗначит, делаю следующим образом. Создаю список
|
|||
карма: 9 |
|
Разработчик
Ответов: 26135
Рейтинг: 2126
|
|||
3042, а где ты сам ArrayOfCB уничтожаешь
|
|||
карма: 22 |
|
Ответов: 1926
Рейтинг: 172
|
|||
nesco, нигде. Я писал:
Но если таблицу перед выходом не очистить (т.е. когда флажки есть), то возникает runtime eroor при выходе. Однако я, кажется, понял, в чём там было дело. В моих циклах while уничтожались и создавались флажки в зависимости от количества строк таблицы. И после удаления каждого из флажков шла перерисовка и вновь запускалось событие TableRepait, в котором вновь происходил вход в циклы. То есть, один и тот же цикл мог запуститься много раз. Теперь в самом начале обработчика отрисовки я пишу:
|
|||
карма: 9 |
|
21