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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by OPF_Nik, 8 Feb 2010.

  1. OPF_Nik

    OPF_Nik New Member

    Joined:
    6 Nov 2009
    Messages:
    36
    Likes Received:
    3
    Reputations:
    -5
    Народ подскажите, как реализовать кнопку "назад" для TRichEdit, но так, что бы она отменяла допустим, на 5 шагов назад, а не на 1 ??
     
  2. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Сам реализовывай
     
  3. OPF_Nik

    OPF_Nik New Member

    Joined:
    6 Nov 2009
    Messages:
    36
    Likes Received:
    3
    Reputations:
    -5
    Jingo Bo
    не можешь не чего путного сказать, промолчал бы уже, умнее показался
     
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Собственно говоря Jingo Bo прав. тут тока самому делать.
    Вся фишка что отмена - это обычная виндовая фишка.
    Верне сообщение WM_UNDO по этому больше 1 не сможешь сделать.
    По этому самому нужно будет это делать.
    А делается это примерно так:
    1) отрабатываешь изменение текса в richedit
    2) сравниваешь что изменилось и запоминай это в TStringList к примеру.
    Запоминать примерно так: Кол-во букв, добавлено или удалено, с какой позиции и что за буквы.
    3) обрабатывай изменения и попутно анализируй последюю запись логов. Если это одно место то просто правь предыдущую запись лога.
    4) когда нужно отменить чтото, то просто забирай записи из лога и восстанавливай по ним данные
     
  5. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Я тебе сказал как сделать, а slesh разжевал
     
  6. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    если текста немного, можешь весь сохранять
     
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Хамишь.