PDA

Просмотр полной версии : Не однократная отмена действий [Delphi]


OPF_Nik
08.02.2010, 21:43
Народ подскажите, как реализовать кнопку "назад" для TRichEdit, но так, что бы она отменяла допустим, на 5 шагов назад, а не на 1 ??

Jingo Bo
08.02.2010, 22:25
Сам реализовывай

OPF_Nik
08.02.2010, 22:35
Jingo Bo
не можешь не чего путного сказать, промолчал бы уже, умнее показался

slesh
08.02.2010, 22:47
Собственно говоря Jingo Bo прав. тут тока самому делать.
Вся фишка что отмена - это обычная виндовая фишка.
Верне сообщение WM_UNDO по этому больше 1 не сможешь сделать.
По этому самому нужно будет это делать.
А делается это примерно так:
1) отрабатываешь изменение текса в richedit
2) сравниваешь что изменилось и запоминай это в TStringList к примеру.
Запоминать примерно так: Кол-во букв, добавлено или удалено, с какой позиции и что за буквы.
3) обрабатывай изменения и попутно анализируй последюю запись логов. Если это одно место то просто правь предыдущую запись лога.
4) когда нужно отменить чтото, то просто забирай записи из лога и восстанавливай по ним данные

Jingo Bo
09.02.2010, 14:56
не можешь не чего путного сказать, промолчал бы уже, умнее показался
Я тебе сказал как сделать, а slesh разжевал

desTiny
09.02.2010, 20:00
если текста немного, можешь весь сохранять

nerezus
09.02.2010, 23:13
Jingo Bo
не можешь не чего путного сказать, промолчал бы уже, умнее показался Хамишь.