Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Откат   Найти похожие ветки 

 
Shreder ©   (2004-01-06 08:13) [0]

Разработан графический редактор по моделированию сетей, включает и объекты StringGrid.
Подскажите принципы и методы реализации отката.


 
olookin ©   (2004-01-06 08:18) [1]

имеется в виду Undo и Redo?


 
Романов Р.В. ©   (2004-01-06 08:21) [2]

Для редактора векторной графики:
Все операции пишутся в протокол. На каждую операцию существует "контроперация".


 
Zergling ©   (2004-01-06 08:33) [3]

В яндекс и искать - pattern, паттерны. Я там на линьк электронной книги наткнулся (его непомню). Книга на английском (C++)


 
Dimka Maslov ©   (2004-01-06 08:47) [4]

1. Пишется наследник от TInplaceEdit в котором обрабатываются сообщения WM_SETFOCUS и WM_KILLFOCUS. В обработчиках этих сообщений Gridу через PostMessage посылаются уведомления о том, что Edit получил или потерял фокус (значения констант-номеров сообщений, послылаемых Gridу не должны равняться ни WM_SET- ни KILLFOCUS, значения надо придумать самому). После чего переопределяет метод TGrid.CreateEditor, в котором создаёшь экземпляр нового класса редактора

2. В Gridе, получившем уведомление о WM_SETFOCUS записывается состояние ячейки (Row, Col и содержимое). Получив уведомление о WM_KILLFOCUS новое содержимое ячйки сравнивается со старым. Если произошли измненения - они записывается в буфер типа LIFO.

3. При нажатии пользователем Undo данные из буфера копируются в ячейку, данные из которой предварительно сохранены в другом буфере, служащаем для Redo

4. При нажатии Redo происходит всё наоборот - ячейка записывается в буфер Undo, данные восстанавливаются из буфера Redo


 
REA ©   (2004-01-06 12:16) [5]

Я сделал у себя в программе базовый класс (например)
TUserAcion
Start(Args) // Сами действия не обязательно в базовом
Finish
Cancel
Undo
Redo
End;

Cвойство CurrentAction и списки Undo, Redo.



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-49582
miracle_fox
2004-01-05 13:25
2004.01.16
как изменить цвет итема в листвью?


14-49690
alless
2003-12-26 10:49
2004.01.16
Кто и что cделал?


6-49673
gedd
2003-11-16 18:11
2004.01.16
Определение имени активного DialUp соединения если их несколько?


7-49791
Александр из Минска
2003-10-30 23:17
2004.01.16
Во всех ли Виндах есть файл regsvr32.exe?


1-49515
Zilog_
2004-01-03 10:42
2004.01.16
Как создать окно во весь экран?