Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Не однократная отмена действий [Delphi] (https://forum.antichat.xyz/showthread.php?t=177357)

OPF_Nik 08.02.2010 21:43

Не однократная отмена действий [Delphi]
 
Народ подскажите, как реализовать кнопку "назад" для 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
не можешь не чего путного сказать, промолчал бы уже, умнее показался
Хамишь.


Время: 14:57