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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цыфровой корень С++ http://www.cyberforum.ru/cpp-beginners/thread1005956.html
Есть программа вычисляя цифровой корень числа, это ясно. Но преподаватель дал дополнительное задание: С клавиатуры ввести массив длинных беззнаковых целых чисел. Используя разработанную функцию,...
C++ Переопределение операций со строками Операция переопределения Замена в строке первых n символов на символ с наименьшим кодом из входящих в строку почему-то работает некорректно #include <iostream> #include <conio.h> using... http://www.cyberforum.ru/cpp-beginners/thread1005952.html
C++ Одномерный массив
Дан одномерный массив, размером n элементов. Посчитать max , заменить максимумом первый и последний элементы массива. Нужно написать программу.
Рекурсия в структурах C++
struct Element { Element *next; Element *prev; List Sub; }; class List { public:
C++ Как построить небинарное дерево? http://www.cyberforum.ru/cpp-beginners/thread1005904.html
(дерево двоичное, но не бинарное) Надеюсь, меня поняли) числа могут повторяться)
C++ STL: контейнеры. Произвольная вставка элементов Доброго времени суток! Можно ли вставить элемент в контейнер STL (не важно какой) в произвольное место? Имеется в виду, в случаи вектора: std::vector<int> ints { 1, 5, 7, 8, 23 }; Допустим, я... подробнее

Показать сообщение отдельно
LASpace
34 / 34 / 3
Регистрация: 27.01.2013
Сообщений: 142

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

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

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

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

Может кто делал что то подобное или знает как умные дяди это реализуют??? Буду рад любому совету и критике)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru