Показать сообщение отдельно
Старый 21.02.2013, 23:26
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
По идее, перед применением надо
- найти и запомнить все _концы_ и _начала_ применений стилей внутри изменяемого отрезка текста (стиль, индекс)
При применении
- запомнить куда вставили новые _начала_ и _концы_ стилей
При отмене
- удалить концы и начала по запомненным индексам
- вставить запомненные старые _концы_ и _начала_.
Проблема в том что, я не работал с TextArea и не знаю, как там обращаются со стилями и вообще бывают ли они вложенными, т.е. может там что-то другое нужно.

Если говорить о простом TextField и TextFormat - то там, похоже, при применении сканировать посимвольно, сравнивать форматы - если одинаковые для соседних символов - запоминать в виде [(format1, количество символов), (format2, ...],
а перед откатом заменить все null-вые поля объектов TextFormat на дефолтные - иначе не перетрут существующие.


Последний раз редактировалось expl; 21.02.2013 в 23:42.