Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизВопрос по созданию системы отмены действий. Найти похожие ветки
← →
Cr@sh (2002-08-16 11:54) [0]Ув. мастера, педложите пожалуйста свои варианты по созданию системы отмены действий.
Суть идеи в том, что имеется программа которая частино сама, частично с помощью человека строит графики и нужно чтобы при совершении ошибки(построил не ту прямую, штриховку и т.д.) пользователь смог отменить свое действие. Программа построена на основе Image`a.
Заранее спасибо.
← →
TTCustomDelphiMaster (2002-08-16 16:12) [1]Могу предложить два варианта реализации такой системы:
A. Нужно запоминать N предыдущих состояний картинки, что дает возможность отменить N операций. Недостаток такого способа - нужен большой объем памяти для хранения предыдущих состояний. Выход - запоминать не всю картинку, а только ту часть где были изменения.
B. Все действия пользователя заносить в список, по которому можно перейти к любому состоянию картинки путем последовательного выполнения этих действий. Допустим пользователь нарисовал 5 линий. Все эти действия занесли в список. При отмене последнего действия нужно нарисовать на исходной картинке 4 линии используя информацию занесенную в список. Недостаток этого способа - высокие затраты времени на повторение последовательности операций пользователя. Выход - выбрать оптимальное количество отмен, при этом исходное состояние картинки будет изменяться.
← →
Lord Warlock (2002-08-16 16:17) [2]Или делать наоборот. В программе ограниченное число граф. операций, для каждой можно написать "противодействие", операции с координатами запоминать, и по отмене вызывать противодействие.
У меня в программе была похожая вещь, но там использовалась система классов и массивы для хранения примитивов.
← →
TTCustomDelphiMaster (2002-08-16 16:42) [3]Lord Warlock © (16.08.02 16:17)
Такой способ подходит для редактора векторной графики, а тут мы имеем дело с TImage т.е. растровая графика. Если вы на bitmap нарисуете черный квадрат какое противодействие нужно чтобы востановить изображение? :)
← →
Lord Warlock (2002-08-16 16:43) [4]
> . Если вы на bitmap нарисуете черный квадрат какое противодействие
> нужно чтобы востановить изображение?
Нарисовать свехру квадрат цвета фона :)
← →
TTCustomDelphiMaster (2002-08-16 17:18) [5]Lord Warlock © (16.08.02 16:43)
И я про тоже см. TTCustomDelphiMaster © (16.08.02 16:12) вариант A.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c