Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2013, 22:23   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию Отмена изменения объекта

Доброго времени суток!

Всем знакома ситуация, когда есть список объектов и способ создания/редактирования их в виде формы с кнопками "Ок" и "Отмена".

Собственно как делать отмену изменений?

Редактирование я делаю так:
В коде формы-редактора объявляю переменную типа "Объект редактирования", из списка передаю туда этот объект. Таким образом все работает.
Но вот проблема: Юзер хочет сделать отмену. А данные уже внесены и старые давно исчезли.

На ум мне приходит что-то такое:
Создается собственный объект на форме-редакторе, и переменная куда втыкается обьект из списка. Затем...
Код:
procedure TMyList.ExchangeData(aFrom,aTo:TMyObject);
begin
aTo.Param1:=aFrom.Param1;
aTo.Param2:=aFrom.Param2;
aTo.Param3:=aFrom.Param3;
...
end;
Эти методом данные из реального объекта, копируются в новый и юзер работает с данными временного объекта. После нажатия "ок" данные тем же методом возвращаются в реальный объект. Если нажал отмену, то ничего не происходит, просто умирает временный объект
Но это гемморой.

Может есть способ проще? Типа телепортации памяти 1 объекта в другой
Человек_Борща вне форума Ответить с цитированием
Старый 02.04.2013, 22:27   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Человек_Борща

Всем знакома ситуация, когда есть список объектов и способ создания/редактирования их в виде формы с кнопками "Ок" и "Отмена".

Собственно как делать отмену изменений?


по нажатию OK актуальные данные из GUI собираются и записываются в хранилище.
По нажатию Cancel ничего этого не присходит.
Rififi вне форума Ответить с цитированием
Старый 02.04.2013, 23:04   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Блин, очень жаль.. придется все-таки это писать..
Человек_Борща вне форума Ответить с цитированием
Старый 03.04.2013, 11:41   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

так это ж просто! при показе формы-редактора свойств объекта просто загружаете в том же конструкторе в нужные поля нужные свойства. меняете их. при нажатии ок записываете в этот объект, при отмене вообще ничего не делать, т.к. уничтожать даже нечего.

а вообще я думал, что вас интересует операции андо и редо для каждого объекта с возможностью отмены и возврата. у вас все проще
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 03.04.2013, 23:20   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
при нажатии ок записываете в этот объект, при отмене вообще ничего не делать
Вариант. У меня все на событиях идет.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Esc отмена изменения ячейки staniiislav Microsoft Office Excel 1 25.07.2012 10:22
Как для визуального объекта запустить выполнение OnChange без изменения данных? delphicoding Общие вопросы Delphi 6 01.10.2011 19:13
C# Вызов метода без создания объекта. Предотвращение изменения фокуса. Colder M Помощь студентам 3 03.05.2011 23:42
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта User>lia Общие вопросы Delphi 4 16.01.2009 16:37