| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
| Нужна идея как реализовать Undo/Redo в редакторе.  14.11.03 12:15 Автор: tatar_0x4e Статус: Member
 |  
| Есть программа, которая предоставляет пользователю возможность редактировать довольно сложные объекты. Данные об объектах хранятся в XML файле. Хотелось бы предоставить пользователю возможность делать Undo/Redo во время редактирования. Пока что приходит в голову только держать на винте несколькол временных файлов в одном из которых ведется редактирование, а в других сохраняются промежуточные версии. По Undo/Redo, соответственно, менять их местами. Идея не фонтан, так что, если кто-то может поделится более элегантным решением - буду признателен. |  
|  | Нужна идея как реализовать Undo/Redo в редакторе.  14.11.03 12:26 Автор: dl <Dmitry Leonov>
 |  
| > Есть программа, которая предоставляет пользователю > возможность редактировать довольно сложные объекты. Данные
 > об объектах хранятся в XML файле. Хотелось бы предоставить
 > пользователю возможность делать Undo/Redo во время
 > редактирования. Пока что приходит в голову только держать
 > на винте несколькол временных файлов в одном из которых
 > ведется редактирование, а в других сохраняются
 > промежуточные версии. По Undo/Redo, соответственно, менять
 > их местами. Идея не фонтан, так что, если кто-то может
 > поделится более элегантным решением - буду признателен.
 
 Достаточно традиционный подход, но для уже существующей программы требующий большой перетряски  - создается класс "действие" с функциями Do и Undo. Объекты этого класса/его потомков выполняют основную функциональность программы, требующую отката (либо в состоянии корректно вызвать функции, эту функциональность обеспечивающую), и накапливаются в стеке. При откате вызывается Undo последнего объекта, и он перекидывается в другой список для Redo.
 |  
|  |  | Добавлю  14.11.03 14:59 Автор: Ktirf <Æ Rusakov> Статус: Elderman
 |  
| Рекомендуемая литература: Гамма и др. Паттерны проектирования (в английском издании - Design Patterns). Там, кстати, в самом начале приводится пример проектирования простенького как-бы-визивиг-редактора. |  
|  |  |  | Спасибо, мысль ясна.  14.11.03 15:19 Автор: tatar_0x4e Статус: Member
 |  
|  |  
 
 
 |  |