Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Вячеслав Власов Гуру (3453), закрыт 5 лет назад
Т. е. смысл в чем: у меня уже есть код, который пробегается по всем строкам ListView, узнает длину каждой и записывает в сумме длину текста в Edit1. Однако результат в Edit1 меняется только по завершении редактирования строки.
А можно ли сделать так, чтобы значение общей длины текста в Edit1 менялось прямо в процессе ввода текста в строку ListView (ввел 1 символ - длина увеличилась на 1)?
Дополнен 6 лет назад
Вот нарисовал, как это должно выглядеть:
http://yapx.ru/v/BQYvG
Лучший ответ
Остальные ответы
Ярослав Искусственный Интеллект (107837) 6 лет назад
При начале редактирования строки ListView, считаете длину всех остальных его строк (в цикле) и заносите результат в переменную А.

При вводе суммируете длину редактируемой строки с А и выводите в Edit1. Это лучше засунуть в таймер. То есть, код подсчета в OnTimer (с Timer.Enabled := false первой строкой), а в обработчике ввода просто переставлять его (Timer.Enabled := false; Timer.Enabled := true;) чтобы срабатывание было строго через заданный свойством интервал.
Вячеслав ВласовГуру (3453) 6 лет назад
Но как перехватить тот текст, который еще редактируется и не сохранен в строке?
Ярослав Искусственный Интеллект (107837) Зависит от того как именно Вы реализовали редактирование текста элемента ListView.
Похожие вопросы