|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
14.06.2014, 17:23 | #1 |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Удаление строк в ListView
Вобщем проблема такая, когда удаляю строки в ListView у меня идет пересчет нумерации строк, так вот, например, выбираю удалить пять строк а оно удаляет четыре строки, пятая строка удаляется только если кликнуть на ListView, если не кликать - строка не добавляется, т.е получается так
1 2 3 5 цифра 4 вылезет только тогда когда кликнуть ListView, что не так? Код (кидаю на событие OnChange): Код:
|
14.06.2014, 17:26 | #2 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
При удалении обратный отсчет используетмя, т.е. с конца
Код:
|
14.06.2014, 17:30 | #3 |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
ZuBy, не помогло, это даже не удаление, мне тупо заново надо пронумеровать строки ListView, удаляет нормально но нумериует так как я описал выше
|
14.06.2014, 17:32 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
OnChange по большому счету глобальная функция изменений, реагирует на все.
Не стоило это туда вешать... Я бы написал функцию обновления LV и дергал когда юзер сам что-то меняет там(удалил к примеру). А дергать пересчет каждые 0.3 сек. - бред Цитата:
Последний раз редактировалось Человек_Борща; 14.06.2014 в 17:34. |
|
14.06.2014, 17:36 | #5 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Цитата:
|
|
14.06.2014, 17:39 | #6 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
Попробуй по кнтпке просто вызвать, sListView1.invalidate;
Если после это сработает, то тогда переноси код в диугое место! И используй BeginUpdate, EndUpdate! |
14.06.2014, 17:45 | #7 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Кинул код который в посте #1 на событие OnCustomDrawItem , пашет идеально, не лагает и прорисовывает идеально.
Цитата:
|
|
15.06.2014, 06:13 | #8 |
Пользователь
Регистрация: 10.06.2013
Сообщений: 25
|
BeginUpdate и EndUpdate блокируют перерисовку компонента в процессе перестроения списка. Без них при удалении либо добавлении каждой строки компонент заново перерисовывается, что, при больших списках, требует много времени.
На пяти строках разницу не заметно, а вот при 500... |
18.06.2014, 00:50 | #9 | |
Форумчанин
Регистрация: 01.11.2012
Сообщений: 770
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
удаление строк ListView | TotKtoNado | БД в Delphi | 0 | 27.07.2011 19:20 |
удаление дубликатов в ListView | fate | Общие вопросы Delphi | 8 | 12.05.2011 16:51 |
Цикл и удаление в ListView | program123 | Общие вопросы Delphi | 0 | 16.04.2010 16:06 |
Удаление Items в ListView | BioHEX | Общие вопросы Delphi | 1 | 04.01.2010 19:43 |
Удаление записи в ListView | Небесный | Общие вопросы Delphi | 1 | 14.12.2008 22:22 |