Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.15.63.145] |
|
Сообщ.
#1
,
|
|
|
Как реализовать функции Undo/Rendo в текстовом редакторе?
Я пока делаю через массив строк, но этот слишком просто!!! Подскажие как это можно по нормальному сделать? |
Сообщ.
#2
,
|
|
|
я не знаю как это делается в обычном текстовом редакторе, но я бы реализовал через два стека, т.е. когда проходит операция, то она записывается в стек, а когда надо сделать возврат, то достается , при этом текущая операция записывается в другой стек для RENDO
|
Сообщ.
#3
,
|
|
|
Сколько раз в твоем редакторе можно будет нажимать Undo?
|
Сообщ.
#4
,
|
|
|
1) IMHO не Rendo а Redo
2) 2stx по моему оно почти так и реализовано, только вот если после Undo че-нить нажали (букву ввели) надо очистить весь стек Redo так что есть идея сделать один стек, для undo, а redo, это перемещение вершины стека, так что после нескольких Redo, когда мы выполняем операцию, новые данные для undo добавляются с новой вершины, а на все что выше было забиваем, только надо память правильно освобождать:) |
Сообщ.
#5
,
|
|
|
Что каксается С, то следубщим образом
SendMessage(Editor->Handle, EM_UNDO, 0, 0); Где Editor - Memo, Edit, RichEdit ;D ;D ;D |