Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142
#1

Отмена действия - C++

12.11.2013, 21:46. Просмотров 301. Ответов 1
Метки нет (Все метки)

Доброе время суток! Сорри если не там тему создал
Дело вот в чем, необходимо реализовать в программе откат действия (ctrl+z). Программа напоминает visio от Microsoft, куча прямоугольников с привязаными к ним данными. Можно менять положение прямоугольников и через специальное меню можно изменять привязанные к эти прямоугольникам данные и параметры.
Вопрос вот в чем: как именно лучше завоминать действия юзера? Добавление/Удаление/Изменение данных.

Я додумался вот до чего:
С каждым действием юзера создавать экземпляр структуры действие ( struct ST_ACTION ) и добавлять в лог ( ну пусть будет список TList или контейнер vector )
Структура ST_ACTION должна содержать:
- тип действия
- все параметры которые могут измениться
- размер лога ( static )
- номер положения в логе
- номер текущего пложения в логе ( для ctrl+shift+z ) ( static )
- методы перехода по логу ( отмена действия и отмена отмены действия )
- методы частичной и полной очистки лога

Может кто делал что то подобное или знает как умные дяди это реализуют??? Буду рад любому совету и критике)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отмена действия (C++):

Отмена регистра - C++
Нужно ввести строку без учета регистра(ПрИвЕт = привет и.д.)или сравнить без регистра Помогите пожалуйста

пишу ed, отмена изменений - C++
Черт меня дернул взять это своим проектом. В общем пишу через глобальные переменные типа сам буфер, текущими позиции, ссылки на начала...

Отмена коммита в GitHub - C++
Не нашел ветки по github, поэтому спрашиваю здесь Создал коммит и затем мне понадобилось его отменить. Для этого перешел на другую...

Отмена ввода по нажатию ESC - C++
Как отменить все введенное и выйти если пользователь нажал ESC? (желательно с использованием консольного буфера ввода) Добавлено через...

Отмена создания объекта при неверных аргументах - C++
Всем привет! Как можно проверить инициализирующие параметры на ошибочность и при ошибке отменить создание объекта? class Person ...

Действия с массивом - C++
Уважаемые гуру программирования я нуждаюсь в вашей помощи :) Условие: Дан массив М а) подсчитать количество элементов массива, равных...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 22:17 #2
LASpace, ознакомьтесь с паттерном "Команда".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 22:17
Привет! Вот еще темы с ответами:

Действия с файлами - C++
Всем здрасти, я не помню задавал ли я подобный вопрос, но раз не знаю ответа, то, видать нет... Подскажите пожалуйста, как создать файл,...

2 действия на 1 кнопке - C++
Здравствуйте! Суть вот в чём. Есть 1 кнопка. Если на неё 1 раз нажать появляется messageBox с текстом "Первый текст". Если нажать...

Действия с флешками - C++
Народ, может я не в том разделе спросить решил, вы уж простите. Но вот в чём беда, нужна такая програмка, которая не выводя никаких окон...

Действия с объектами - C++
У меня объекты класса выполняют одну и туже функцию, как можно сделать все это циклом (если возможно) ? Add_Pac.Write_Start_OL(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru