Top.Mail.Ru
Ответы
Аватар пользователя
7лет
Изменено
Аватар пользователя
Аватар пользователя
Программирование
+1

Delphi. Возможно ли сделать пересчет всей длины текста ListView в процессе редактирования строки?

Т. е. смысл в чем: у меня уже есть код, который пробегается по всем строкам ListView, узнает длину каждой и записывает в сумме длину текста в Edit1. Однако результат в Edit1 меняется только по завершении редактирования строки.
А можно ли сделать так, чтобы значение общей длины текста в Edit1 менялось прямо в процессе ввода текста в строку ListView (ввел 1 символ - длина увеличилась на 1)?

Дополнен

Вот нарисовал, как это должно выглядеть:
http://yapx.ru/v/BQYvG

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

сумируй

Аватар пользователя
Искусственный Интеллект
7лет

При начале редактирования строки ListView, считаете длину всех остальных его строк (в цикле) и заносите результат в переменную А.

При вводе суммируете длину редактируемой строки с А и выводите в Edit1. Это лучше засунуть в таймер. То есть, код подсчета в OnTimer (с Timer.Enabled := false первой строкой), а в обработчике ввода просто переставлять его (Timer.Enabled := false; Timer.Enabled := true;) чтобы срабатывание было строго через заданный свойством интервал.