информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыSpanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
 Microsoft Authenticator прекращает... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Спасибо, мысль ясна. 14.11.03 15:19  Число просмотров: 985
Автор: tatar_0x4e Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
<programming>
Нужна идея как реализовать 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
<"чистая" ссылка> <обсуждение закрыто>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach